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

太原网站建设制作报价乐清市规划局

太原网站建设制作报价,乐清市规划局,大连集团网站建设,网站建设完成情况工作总结这次#xff0c;我们来讲数据结构的排序的直接插入。 一#xff1a;排序的思想#xff1a;把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中#xff0c;直到所有的记录插入完为止#xff0c;得到一个新的有序序列 相当于#xff0c;我们打牌如上图…这次我们来讲数据结构的排序的直接插入。 一排序的思想把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中直到所有的记录插入完为止得到一个新的有序序列 相当于我们打牌如上图时我们一般都会使用直接插入排序的方法。 即在3和9直接插入对吧。 同样我们这里的直接排序也是按这种方法来思考。 那么我们先来上它的动图来方便我们更清楚。 步骤讲解升序 1.一开始的时候当第一个的时候它肯定是有序的所以我们从第二个数开始插入并比较。 2.先把第二个数用临时变量存起来再去比较如果它比前面对比数还要小就将前面对比数挪到后面临时变量再去跟更前面的数依次比较。 3.如果临时变量大于对比那个数就插入到对比数的后面。 4.循环数据向前插入进去直到全部的数都插到正确的位置。 void InsertSort(int* a, int n) {//整个for (int i 1; i n; i){//单一个int end i - 1;int temp a[i];while (end 0){if (a[end] temp) //如果对比数大于存入临时的就对比数往后挪{a[end 1] a[end];end--;}else //如果对比数小于存入临时的就跳出循环{break;}}a[end 1] temp; //在对比数的后面插入数}} 直接插入排序的特性总结 1. 元素集合越接近有序直接插入排序算法的时间效率越高 就比如是 你每次插入是都比前面那个数大那么你是不是就不需要挪动数据了 假设你有n个数据按照上面的情况你执行的次数就是n-1,这样效率是不是就高了。 此时的最好时间复杂度O(N)。 2. 那么最坏的情况呢 就是逆序。这样你每次插入的时侯都是要跟前面的对比数挪动 此时的 时间复杂度O(N^2)。   3. 空间复杂度O(1)它是一种稳定的排序算法   4. 稳定性稳定   优化排序---希尔排序 上面我们已经知道插入排序的时间复杂度O(N^2). 那么有什么办法使他们的效率更高一点呢 这里大佬们提出了希尔排序的方法。 思路 1.用间隔为gap的变量分别对每组数插入 2.预排序它的目标就是接近有序 3.最后再直接插入 这样的方法会大大提高效率。 比如说你看按照下面的话分组 这一趟排序完是不是就看起来比没有排时变有序了。  这样一趟趟地回来到gap1时就只需挪隔壁的数字比较所以大大提高了直接插入的效率。 比较 我们知道上面直接排序 直接插入完全逆序时 它比较执行的次数123……n-1次 根据等差数列的公式n^2/2-n/2; 那么我们使用希尔排序用gap分组 gapgap/4时 分成两部分 那么它的次数12……n/2-112……n/2-1 那么计算得到n^2/4-n/2; 相比你看是不是就提高了效率。   gapgap/2 假设为n则分成3部分 执行的次数123……n-1*3 计算得 n^2/6-n/2; 类比得当我们分的部分越多执行的次数会减少。 有以下规律 当分成部分k执行次数 1/k*n^2/2-n/2 当gap越小跳得越慢越有序当gap越大跳得越慢越无序。 那么我们发现当gap很小时它的次数本来是n^2/2-n/2但是我们考虑到之前我们已经经过预排序了已经很接近有序了所以按照最好的情况来算。 总结 希尔排序法的基本思想是先选定一个整数把待排序文件中所有记录分成个组所有距离为的记录分在同一组内并对每一组内的记录进行排序。然后取重复上述分组和排序的工作。当到达1时所有记录在统一组内排好序。  希尔排序的特性总结 1. 希尔排序是对直接插入排序的优化。 2. 当gap 1时都是预排序目的是让数组更接近于有序。当gap 1时数组已经接近有序的了这样就会很快。这样整体而言可以达到优化的效果。我们实现后可以进行性能测试的对比。 3. 希尔排序的时间复杂度不好计算因为gap的取值方法很多导致很难去计算因此在好些树中给出的希尔排序的时间复杂度都不固定 根据大佬们的推算一般都是gap(gap/31常用   int gap n;while (gap 1){gap gap / 3 1;for (int i 0; i gap; i){for (int i 0; i n - gap; i gap){//单个int end i;int temp a[i gap];while (end 0){if (a[end] temp){a[end gap] a[end];end - gap;}else{break;}}a[end gap] temp;}}}} 好了选择排序和希尔排序就写完了。 最后学路漫漫永无止境一点一点进步吧
http://www.w-s-a.com/news/249054/

相关文章:

  • 濮阳住房和城乡建设部网站给别人做ppt的网站
  • 电子商务网站建设规划心得广告投放媒体
  • 淘宝店铺购买价格宝应百度seo
  • 同一虚拟主机 2个网站如果网站设计时
  • 网站维护的协议做网站 需要 域名 空间
  • 高安建站公司济宁哪里做网站最便宜
  • 南宁建站免费模板简单的html网页设计
  • 吉林省建设 安全 网站沐风seo
  • 自己做捕鱼网站能不能挣钱软件开发公司需要什么硬件设备
  • 大连设计网站公司3小说网站开发
  • 建设环保网站查询系统网站建设168
  • 保险网站程序源码wordpress过滤敏感
  • 简述营销型网站推广的方法网站建设报价方案模板
  • 四川林峰脉建设工程有限公司网站为什么建设营销型网站
  • 网站模板搭建已经建网站做外贸
  • 网站建设选哪个wordpress实现微信登录界面
  • 网页设计网站哪个公司好学网站开发要多少钱
  • 商务网站建设ppt做视频分享网站
  • WordPress网站根目录有哪些wordpress用户等级
  • 私人装修接单网站重庆制作企业网站
  • 易企秀网站怎么做轮播图什么是网站版面布局
  • 网站开发先写什么后写什么做网站公司专业
  • 中山网站建设文化外贸公司的网站建设模板
  • 美食网站开发开题报告wordpress第三方支付接口
  • 有哪些网站可以卖自己做的图片简洁大方的网站首页
  • 四川建设网电子招投标网站网站酷站
  • 凯里网站建设如何收费网站建设php怎么安装
  • 网站建设专业网站设计公司物格网一站式建站价格
  • seo网站培训优化怎么做如何给网站做下载附件
  • php网站建设文献综述怎么样提高网站排名