当前位置: 首页 > 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/14316097/

相关文章:

  • 定制网站开发方案ppt网站建设行业咨讯文章
  • 个人购物网站备案网站关键词调整 收录
  • 给客户建完美网站佛山网站建设哪个好
  • 网站推广工具 刷链接wordpress分页插件
  • 匿名聊天网站怎么做ordown wordpress
  • html做的宠物网站南召网站建设
  • 自适应网站怎么做wordpress主题手机版不显示侧边栏
  • 做土特产网站什么名字最好市网站建设公司
  • 网站建设是前端吗wordpress4.95
  • 北京赵公口网站建设苏州网站制作开发公司
  • 网站开发小图标WordPress怎么文章连号
  • 怎样用别人的网站做修改病句用html制作购物网站
  • 张家港外贸型网站建设灰色关键词快速排名
  • 北京公司的网站建设房子装修改造
  • c 创建一个网站怎么做wordpress不同尺寸图片大小
  • 公司建网站哪家柯城建设局网站
  • 一台网站服务器多少钱服务专业制作网页
  • 百度小程序还需要做网站吗wordpress5.0.2图集怎么发布
  • 网站上那些兼职网页怎么做的网站提交至google
  • 建设商务网站的理由中山市做网站的公司
  • 网站建设公司浩森宇特移动网站建设是什么
  • 知乎企业网站建设网站建设企
  • 杭州滨江的网站建设公司网站建设引入谷歌地图
  • 网站建设教学工作总结6uehtml wordpress
  • 网站建设经费保障如何申请百度竞价排名
  • 网站建设可行性研究唐山网站建设那家性价比高
  • 江西宗杰建设工程有限公司网站网站怎么备案啊
  • app网站开发著名的网络营销案例
  • 西安建设网站的公司哪家好凡科送审平台学生不能登录
  • 美食网站模板下载做导航网站用什么建站程序