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

购物网站建设需求模板下载站长音效

购物网站建设需求模板下载,站长音效,购买网站设计制作,校园网站如何建立要考数据结构了#xff0c;赶紧来复习一波排序算法 文章目录一、直接插入排序二、希尔排序一、直接插入排序 直接上主题 插排#xff0c;揪出一个数#xff0c;插入到原本已经有序的数组里面#xff0c;如数组有n个数据#xff0c;从0~n下标依次排列#xff0c;先从左往…要考数据结构了赶紧来复习一波排序算法 文章目录一、直接插入排序二、希尔排序一、直接插入排序 直接上主题 插排揪出一个数插入到原本已经有序的数组里面如数组有n个数据从0~n下标依次排列先从左往右依次排序每一个待排序它的左边都已经是有序的然后这个数揪出来插入它左边已经有序的数组中其实它需要先与它左边的相比较比左边的数小才插入进去如果这个数都比它左边的数要大了就不用再插入了就呆在原本位置不变再往右排重复这样操作直到将所有排好序。 其实就像体育课或者军训按高矮次序排列一样。 第一个可以先不动然后第二个与前面比较如果前面一个比他高。那么第一个就往后面走一位原先的第二位再与前面比较但是这会发现他前面已经没人了都比完了都没有发现比他矮的那么他就在第一个位置站着。这会轮到第三个他发现他比第二个要小,那么原来第二个位置上的人跑到第三个位置上然后原本第三个位置上的那个人再与第一个比较发现比第一个高这会他就站在第一个的后面他这一轮就结束了轮到第四个、第五个一直到一列排完。 可以发现每个人排序停止条件是要么比较完了都没有发现比他小的那么他就是最小的呆在第一位要么就是比较时发现有比他矮的那么他就站在比他矮的那个后面。当然体育课上排列自然不是这样排的都是看一眼哪些高哪些矮就先站好然后最后再排但是其实思想也是插入排序。 可以发现6个数字但是只比较了五趟因为第一个就是有序的所有不用比较 好了上代码了 #includestdio.hvoid Insertsort(int* arr, int sz) {for (int i 0; i sz - 1; i){int end i;int tmp arr[end 1];//[0,end]有序end1位置的值插入[0,end]让[0,end1]有序while (end 0){if (arr[end] tmp)//tmp比他前面的小那么end就往左边走{arr[end 1] arr[end];end--;}//直到遇见比其小的tmp就在end后面了//这里结束条件有两个//第一它前面的所有都比它大那么它插在第一个//第二tmp在中间时遇见比其小的那么就插在比它小的后面也就是end后面else{break;}}arr[end 1] tmp;//在end后一位插入} }int main() {int a[] { 9,6,4,7,1,2 };int sz sizeof(a) / sizeof(a[0]);Insertsort(a, sz);for (int i 0; i sz; i){printf(%d , a[i]);}return 0; }最好的情况就是原本就有序的其时间复杂度为O(n),因为要遍历一遍。它的时间复杂度为O(n^2),考虑最坏的那一种情况逆序要求我们正序输出 二、希尔排序 而希尔排序其实思想是基于直接插入排序上升华的,原理和直接插入排序差不多 思想先将数组进行预排序让数组接近有序最后再直接插入排序 预排序是如何排的分组排。 分多组间隔为gap的为一组假设gap最开始为数组长度 gap n因为gap越大数组中大的值能更快的到后面小的值能更快的到前面 但是在分组排的过程中gap不会一成不变的当gap1 时就是直接插入排序了因此我们将gap每次除以2或者除以3但是除3要使其1假设gap n6,gap gap/3 2,2/3!1,所有要加1保证最后一次一定为一因为最后进行直接插入排序 gap 4 gap 2 经过预排大的数更快的跳到后面小的数更快的跳到前面 注意gap越大越不接近有序gap越小越接近有序gap 1时就是直接插入排序 上代码 //希尔排序 #includestdio.hvoid Sheelsort(int* a, int sz) {int gap sz;while (gap 1){gap / 2;//注意越界的情况//把间隔为gap的数据排序for (int i 0; i sz - gap; i){int end i;int tmp a[end gap];//将后一个数保存到tmp,其实和直接插入排序类似只不过这里是endgap,//因为要与间隔为gap比较//直接插入排序是与它后面一个比较这里是gap罢了while (end 0){if (a[end] tmp){a[end gap] a[end];end - gap;//往前跳跃gap,}else{break;}}a[end gap] tmp;//在end的gap位置放tmp,其实就是将直接插入排序的1换成了gap}} }int main() {int arr[] { 9,8,7,6,5,4,3,2,1 };int sz sizeof(arr) / sizeof(arr[0]);Sheelsort(arr, sz);for (int i 0; i sz; i){printf(%d , arr[i]);}return 0; } 希尔时间复杂度 这个循环为lon^n次 这个循环近乎n次 所有总的近乎是nlon^n 时间复杂度也就是O(nlog^n), gap/3时,为nlon3^n
http://www.hkea.cn/news/14272174/

相关文章:

  • 重庆哪家网站虚拟主机能建设网站吗
  • 做儿童网站肥东网站制作
  • 广西建设厅网站地址深圳大型商城网站建设
  • 平度那里有做网站的凡客诚品官方网店下载
  • 陕西网站建设公司哪有wordpress怎么给图片添加超链接
  • 网站建设优缺点仙桃网站制作州国
  • 学生个人网站制作软件网站信息登记表扫描件
  • 公司备案证查询网站查询网站查询网站和网页的不同
  • 潍坊网站排名优化温州网站的优化
  • 一个网站可以同时几个主域名吗建站之星做网站
  • 如何做网站粘贴广告反向代理服务器做wordpress外网
  • 网站建设及维护合同简述网站建设过程
  • 河北高端网站制作html网页设计实验总结
  • 湘潭县建设投资有限公司网站网站建设在哪里学
  • 给vps安装wordpress中山网站百度优化
  • 建网站多少钱可以卖货的旅游电子商务 网站建设
  • asp怎么新建网站安 网站建设
  • 高校学校网站建设海南省交通建设局网站首页
  • 长沙专业外贸网站建设网站开发全程实例课本代码
  • 凡科网官方网站重庆网站公司设计
  • 张店网站建设价格网上做兼职正规网站有哪些
  • 静态网站怎么建设哪些行业做网站多
  • 山东城乡建设厅网站怎样做国际网站平台
  • 删除西部数码网站管理助手在线制作网站 如何禁止蜘蛛收录网站
  • 合肥公司门户网站制作网站建设协议书模板 完整版
  • wordpress做网站怎么样温州网站建设和运营
  • 怎样建官方网站商务网站需求说明书
  • 建设企业网站平台书本翻页 网站模板
  • 研学网站平台建设方案上海知名的网站建设公
  • asp网站如何建设长沙百度快速排名优化