当前位置: 首页 > news >正文

做购物网站的业务360搜索首页

做购物网站的业务,360搜索首页,html+css+js软件,wordpress 学习视频评判一个排序算法时除了时间复杂度和空间复杂度之外还要考虑对cache的捕获效果如何,cache友好的排序算法应该对数据的访问相对集中,快速排序相较于堆排序优点就是在于对cache的捕获效果好。 堆排序 时间复杂度:O(n log n &#xf…

评判一个排序算法时除了时间复杂度和空间复杂度之外还要考虑对cache的捕获效果如何,cache友好的排序算法应该对数据的访问相对集中,快速排序相较于堆排序优点就是在于对cache的捕获效果好。

堆排序
时间复杂度:O(n log n )
空间复杂度 O(1) 不稳定
cache不友好

void func(vector<int>&nums){function<void(int,int)>merge=[&](int start,int end){int child=start;int father=2*child+1;while(child<=end){if(child+1<=end&&nums[child+1]>nums[child]) child++;if(nums[father]<nums[child]){swap(nums[father],nums[child]);child=father;father=2*child+1;}else break;}};int n=nums.size();for(int i=n/2-1;i>=0;i--){merge(i,n-1);}for(int i=n-1;i>=0;i--){swap(nums[0],nums[i]);merge(0,i-1);}
}

快速排序
时间复杂度O(n log n)- O(n^2)
空间复杂度 O(1)
cache友好

void func(vector<int>&nums,int start,int end){if(start>=end) return;int s=start-1;int e=end+1;int val=nums[start];//这里选值可以优化int index=start;while(index<e){if(nums[index]==val) {index++;}else if(nums[index]<val){swap(nums[index],nums[++s]);index++;}else swap(nums[index],nums[--e]);}func(nums,start,s);func(nums,e,end);
}

归并排序
时间复杂度 O(n log n)
空间复杂度 O(n)
cache友好

void func(vector<int>&nums,int start,int end){if(start>=end) return;int mid=(start+end)/2;func(nums,start,mid);func(nums,mid+1,end);vector<int>tmp(end-start+1);int start1=start,start2=mid+1;int index=0;while(start1<=mid&&start2<=end){int val1=start1<=mid?nums[start1]:INT_MAX;int val2=start2<=end?nums[start2]:INT_MAX;if(val1>val2) tmp[index++]=nums[start2++];else tmp[index++]=nums[start1++];}for(int i=start;i<=end;i++) nums[i]=nums[i-start];
}

选择排序
时间复杂度 O(n^2)
空间复杂度 O(1)
cache不友好

void func(vector<int>&nums){int n=nums.size();for(int i=1;i<n;i++){int index=0;for(int j=0;j<n-i;j++){if(nums[index]>nums[j]) index=j;}swap(nums[index],nums[n-i]);}
}

插入排序
时间复杂度 O(n^2)
空间复杂度 O(1)
cache友好

void func(vector<int>&nums){int n=nums.size();for(int i=1;i<n;i++){int val=nums[i],j=i-1;while(j>=0&&nums[j]>val){nums[j+1]=nums[j--];}nums[j+1]=val;}
}

冒泡排序
时间复杂度 O(n^2)
空间复杂度 O(1)
cache不友好

void func(vector<int>&nums){int n=nums.size();for(int i=0;i<n;i++){bool b=true;for(int j=i+1;j<n;j++){if(nums[i]>nums[j]) {b=false;swap(nums[i],nums[j]);}}if(b) break;}
}
http://www.dt0577.cn/news/8800.html

相关文章:

  • 深圳定制建站公司电话seo优化课程
  • 如何在word上做网站网址seo排名关键词
  • 网站建设联系方式大数据智能营销系统
  • 深圳做棋牌网站建设多少钱百度关键词优化排名技巧
  • seo网站优化网站编辑招聘搜索指数查询
  • 婚庆设计图网站搜索引擎营销概念
  • 为什么做网站编辑互联网广告推广好做吗
  • 网站建设公司(推荐乐云践新)广告联盟推广
  • 大数据营销的作用seo在哪学
  • 小红书推广网站2345浏览器下载
  • 设计政府类网站应注意什么如何做自己的网站
  • 果洛营销网站建设多少钱湖南网络推广公司大全
  • 外汇平台网站开发需求说明北京seo网站优化培训
  • 网站域名跳转怎么做怎么做网站卖产品
  • 主页去掉wordpressseo如何快速出排名
  • 合肥建设工程竣工结算备案网站广告推广图片
  • web下载wordpress深圳aso优化
  • 互联网网站基础网络营销软文范例大全800
  • dns 解析错误 网站重庆百度开户
  • 重庆网站建设论坛优化设计六年级上册语文答案
  • 做药品网站有哪些内容百度网盘电脑版官网
  • openshift 做网站德兴网站seo
  • 公司简介ppt模板刷百度关键词排名优化
  • 广西政府网站政务新媒体建设调查百度手机
  • 受欢迎的南昌网站建设百度竞价排名公式
  • 做网站哪些技术淮北网络推广
  • 网站建设客户功能详细要求网站设计师
  • 网站如何做邮箱订阅号seo视频教程汇总
  • 苏州姑苏区建设局网站营销培训班
  • 做网站注册35类哪几个小项推广平台都有哪些