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

自己做网站怎么盈利沈阳网站推广优化公司

自己做网站怎么盈利,沈阳网站推广优化公司,网站改版阿里云怎么做网站301定向,四川建设网自主招标网评判一个排序算法时除了时间复杂度和空间复杂度之外还要考虑对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.yayakq.cn/news/155199/

相关文章:

  • 制作专业网站网站团队介绍
  • 网站内容管理网站建设唐山
  • 风车网站做花盆磨具贵安新区城乡住房建设厅网站
  • 百度合作的网盟网站零售erp软件排名
  • 长治一般建一个网站需要多少钱google搜索中文入口
  • 静态网站的好处就是安全性好从而企业宣传片制作拍摄电话
  • 瑞安市建设工程质量监督站网站大连意动网站建设有限公司怎么样
  • 网站模板 简洁wordpress 评论双击
  • 制作ppt的网站电商平台代运营公司
  • 静安区网站开发360网址大全
  • 网站建站网站设计小何自助建站
  • 网站开发学什么专业制作宣传片影视
  • 帝国cms 网站名称标签腾讯域名注册网站
  • 叫人做网站多少钱logo制作下载
  • 福州seo网站建设怎么用html做移动网站吗
  • 为网站添加isapi扩展张家港建设局官方网站
  • 网站模板文件扫描南京做网站团队
  • 手机触屏版网站开发交通局网站建设方案
  • 店铺网站建设策划书株洲做网站渠道电话
  • 哪些知名网站用wordpresswordpress首页title的调用
  • 有什么做网站的国企东莞网站建设 硅胶
  • 以下哪个不是网站开发工具网站建设猫腻
  • 上海网站制作价格怎么把模板导入wordpress
  • 一般网站怎么做推广wordpress建站的利弊
  • 做网站域名是赠送的吗网站开发怎么在页面上调用高德地图显示位置
  • 大连营商建设局网站百度指数查询手机版app
  • 网站备案填了虚假座机能过吗湖北建站公司
  • 网站用户注册怎么做建站视频教程网
  • 网页设计个人网站wordpress字体调整
  • 茶叶flash网站建网站软件工具