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

网站开发经验与教训范文深圳罗湖建网站

网站开发经验与教训范文,深圳罗湖建网站,励志网站织梦源码,淮北论坛招聘希尔排序 优化版的插入排序#xff0c;优化的地方就是步长#xff08;增量#xff09;增大了#xff0c;原来的插入排序的步长#xff08;增量#xff09;是1#xff0c;而希尔排序的步长#xff08;增量#xff09;可以很大#xff0c;然后逐渐减小直到1形成插入排…希尔排序  优化版的插入排序优化的地方就是步长增量增大了原来的插入排序的步长增量是1而希尔排序的步长增量可以很大然后逐渐减小直到1形成插入排序 也叫减小增量排序 若不了解可看之前发布的希尔排序 void shellSort1(int arr[]int length){for(int iinterval;iarr.length;iinterval){int targetarr[i];int ji-interval;while(targetarr[j]){arr[jinertval]arr[j];j-interval;}arr[jinterval]target;} } 个人感觉shellSort2更复杂一些。 void shellSort2(int arr[]int length){int h4;while(h1){for(int ih;ilength;i){for(int ji;jharr[j]arr[j-h];j-h){int temparr[j];arr[j]arr[j-h];arr[j-h]temp;}}h/2;} }shellSort1的增量为length/2,不断取半 个人感觉shellSort1更好用shellSort2复杂一些shellSort更复杂。 经典的希尔序列1413.....,3*n1 void shellSort3(int arr[]int length){int h1;int tlength/3;while(ht)h3*h1;//让步长增量在length左右//shellSort2的步长给锁死成4了不过挺好用while(h1){for(int ih;ilength;i){for(int ji;jharr[j]arr[j-h];j-h){int temparr[j];arr[j]arr[j-h];arr[j-h]temp;}}h/3;} } 快速排序 冒泡排序的优化版本核心思想使用轴每一轮左右递归后把轴放到中间使得轴的左边都比轴小轴的右边东渡比轴大当所有的递归都结束了就自然排序好了 pivot:轴(主元)一般选第一个元素 需要用到双指针一个左指针一个右指针 左指针找比轴(主元)大的右指针找比轴(主元)小的 然后二者值交换 void quickSort(int arr[],int left,int right){if(leftright)return;int ileft;//左指针int jright;//右指针int pivotarr[i];//该整体第一个元素并将主元提取出来while(ij){while(ijarr[j]pivot)j--;//找右边第一个小于pivot的值arr[i]arr[j];//然后把小于pivot的值给主元所在位置while(ijarr[i]pivot)i;//找左边第一个大于pivot的值arr[j]arr[i];将该值赋给第一个小于pivot的值//保留一个空位即原来主元空出来的位置可用于值的交换//左指针每找到一个大于pivot的值就停下右指针每找到一个小于pivot的值就停下然后二者互换// while(ijarr[i]pivot)循环条件添加ij是因为在while(ij)这个大循环中仍有两个while嵌套第一个while结束后,第二个while会继续执行i和j的位置就彼此越界了}arr[i]pivot;quickSort(arr,left,i-1);quickSort(arr,i1,right);}第二种写法void swap(int arr[],int i,int j){//换值函数int temparr[i];arr[i]arr[j];arr[j]temp;} void quickSort2(int arr[],int left[],int right){//另一种快速排序的样例if(leftright)return;int pivotarr[left];int ileft1;//这里有两个指针int jleft1;while(jright){//每轮循环j都向右移一位if(arr[j]pivot){//如果j指向的值小于pivotswap(arr,i,j);//则交换i和j的值i;//每次将小于pivot的值移到左边i右移一位i就用于等待交换的位置每次j找到小于pivot的值都与i位置上的数交换}j;//j用于寻找小于pivot的值}swap(arr,left,i-1);//while循环结束后i最后1了所以i-1为最后一个小于pivot的值的位置因此将主元left上的值与i-1的值交换quickSort2(arr,left,i-2);//主元左边quickSort2(arr,i,right);//主元右边 }
http://www.hkea.cn/news/14534168/

相关文章:

  • 企业网站建设的开放方式一般有wordpress空间推荐
  • 泸州北京网站建设厦门跨境建站平台
  • 做网站的联系方式清理wordpress数据表
  • 网站域名及空间购买凡科建站小程序
  • 如果将域名指向网站湖南哪里有做网站的
  • 郑州 网站 公司360网站怎么做链接
  • 重庆网站建设开发公司网站建设优化服务价位
  • 网站系统繁忙是什么原因不属于网络营销的推广手段是什么
  • 加强学科网站建设高端网站建设教程
  • win本地网站建设承德网络推广
  • 怎么做vip网站重庆飘逸科技有限公司
  • 坑梓网站建设流程企业法律平台网站建设方案
  • 网站弹出网站腾讯qq对话框怎么做
  • 企业大型网站开发网站模板设计seo优化关键词挖掘
  • 保险网站建设的目标有哪些网站是cms
  • 怎么做加盟美容院网站免费申请域名的网站
  • 网站建设骗苏州房产网
  • 现在很多网站都是wordpress天元建设集团电话
  • 济源网站建设公司百度商桥代码怎么加到网站上
  • 福州网站建设托管电商运营模式
  • 电商网站的成本python 营销型网站建设
  • 辽宁建设工程信息网场内业绩北京seo推广优化
  • 顺德做网站shundeit抖音带运营的执行老大
  • 基层机构网站建设网站首页被k怎么恢复
  • 网站建设应该懂什么知识wordpress拖拽
  • 怎么设置自己做的网站教你如何建设一个模板网站
  • 男女做微电影网站网站正在建设中单页
  • 嘉定专业网站建设怎么样做公司网站
  • 餐饮网站开发性能需求分析河北seo网站设计
  • 山东住房和城乡建设厅网站登陆装修效果图制作