当前位置: 首页 > 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.hkea.cn/news/14419573/

相关文章:

  • 公司建设网站产生哪些费用网站定制功能
  • 网站服务器租赁哪家好php做网站基本流程
  • 网站建设与维护网页微博怎么进超话
  • php网站开发技术文档网页html模板代码
  • 浙江省建设部网站网站开发技术选择
  • 烟台市做网站的价格陕西网站seo
  • 做全景图的网站上海企业seo
  • 自己做的网站如何让百度搜索泰安58同城
  • 重庆网站建设公司排名企业形象vi设计案例分析
  • 企业网站seo优化方案东昌府区网站建设公司
  • php商场网站开发经验国家信息公示网查营业执照
  • 大兴安岭建设局网站成都网站建设平台
  • 长沙医院网站建设wordpress后台添加菜单
  • 专业网站设计制作改版成都装修公司有哪些
  • 百度给公司做网站效果咋样如何做网上销售网站
  • 把网站做成微信小程序定制制作网站设计
  • 网站建设的实验的结论个人网页设计风格分析
  • 做网站美工赚钱吗官网网页设计说明
  • 网站建设发布平台宁波职业能力建设网
  • 做乒乓球网站的图片紫光华宇拼音输入法官方下载
  • 网站首页弹出图片淄博网站制作公司定制
  • 河北建设部网站成都网站建设 seo
  • 简易php企业网站源码广东建网站公司
  • 两个域名指向一个网站江都区城乡建设局网站马局
  • 西安抖音运营网站地图对seo的影响
  • 怎样创建网站快捷方式望野怎么读
  • 网站标题修改国外设计工作室
  • 怎么样建一个网站互联网广告营销
  • 尉氏网站建设优化seo哪家好
  • 宝洁网站建设企业网站的用户需求分析