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

用wordpress做的站点企业建站公司热线电话

用wordpress做的站点,企业建站公司热线电话,网站模板整站,高校档案馆网站建设1.排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序…

1.排序的概念

排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。

稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次 序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排 序算法是稳定的;否则称为不稳定的。

内部排序:数据元素全部放在内存中的排序。

外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不断地在内外存之间移动数据的排序。

2.常见的排序算法

插入排序:直接插入排序,希尔排序

选择排序:选择排序,堆排序

交换排序:冒泡排序,快速排序

归并排序:归并排序

Comparison Sorting Visualization-各个排序算法的动态演示效果

2.1冒泡排序

基本思想:

所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排 序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。

冒泡排序是左右相邻的两个元素比较,元素范围是[0,n-1]

冒泡排序的特性总结:

1. 冒泡排序是一种非常容易理解的排序

2. 时间复杂度:O(N^2)

3. 空间复杂度:O(1)

4. 稳定性:稳定

上图是加入了flag标记值进行了优化,如果进行了交换就把flag值置为1,如果不变就说明是有序的,直接break。

2.2插入排序

直接插入排序是一种简单的插入排序算法,基本思路:

把待排序的记录按其关键值大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。

当插入第i(i>=1)个元素时,前面的array[0],array[1],…,array[i-1]已经排好序

此时用array[i]的排序码与 array[i-1],array[i-2],…的排序码顺序进行比较

找到插入位置即将array[i]插入,原来位置上的元素顺序后移

理解上述代码,有n个数据,数据元素范围[0,n-1],插入排序的思想就是前[0,end]个数据是有序的,现在要把第(end+1)位置的数据插入到[0,end]中,保持有序。

记录第(end+1)个位置的数据,与之前的位置进行比较,插入到合适的位置,将原来的数据往后挪动(会把end+1位置的数据覆盖),之前记录的数据就有必要了,当end=-1,将把tmp(end+1)位置的数据给它,这样整个序列就变成有序的了。

直接插入排序的特性总结:

1. 元素集合越接近有序,直接插入排序算法的时间效率越高

2. 时间复杂度:O(N^2)

3. 空间复杂度:O(1),它是一种稳定的排序算法

4. 稳定性:稳定

2.3希尔排序(缩小增量排序)

希尔排序:

1.预排序(让数组接近有序)

2.插入排序

基本思想是:先选定一个整数,把待排序文件中所有记录分成gap个组,所有距离为gap的记录分在同一组内,并对每一组内的记录进行排序。然后重复上述分组和排序的工 作。

当到达gap=1时,所有记录在统一组内排好序。

预排序:

gap越大,大的数可以越快跳到后面,小的数可以越快跳到前面,但越不接近有序。

gap越小,跳的越慢,但越接近有序,当gap=1的时候就相当于插入排序,就有序了。

希尔排序的特性总结:

1. 希尔排序是对直接插入排序的优化。

2. 当gap > 1时都是预排序,目的是让数组更接近于有序。当gap == 1时,数组已经接近有序的了,这样就 会很快。这样整体而言,可以达到优化的效果。

3. 希尔排序的时间复杂度不好计算,因为gap的取值方法很多,导致很难去计算,因此在好些树中给出的 希尔排序的时间复杂度都不固定:

4.时间复杂度:O(N^1.3)

4. 稳定性:不稳定

2.4选择排序

基本思想:

每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的 数据元素排完 。

直接选择排序:

在元素集合array[i]--array[n-1]中选择关键码最大(小)的数据元素。

若它不是这组元素中的最后一个(第一个)元素,则将它与这组元素中的最后一个(第一个)元素交换。

在剩余的array[i]--array[n-2](array[i+1]--array[n-1])集合中,重复上述步骤,直到集合剩余1个元素。

这里我做了一点小优化,在我们遍历的时候,同时找到最小和最大的元素,然后把最小的和第一个位置交换,把最大的和最后一个位置交换(这里值得注意的是,如果第一个元素是最大的,因为在这之前我们已经把最小的元素和第一个位置进行了交换,此时第一个位置的元素就不是我们需要的最大的元素了,所以要及时更新最大的元素的位置,然后再把它交互到最后一个位置)

直接选择排序的特性总结:

1. 直接选择排序思考非常好理解,但是效率不是很好。实际中很少使用

2. 时间复杂度:O(N^2)

3. 空间复杂度:O(1)

4. 稳定性:不稳定

2.5堆排序

堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。它是 通过堆来进行选择数据。需要注意的是排升序要建大堆,排降序建小堆。

直接选择排序的特性总结:

1. 堆排序使用堆来选数,效率就高了很多。

2. 时间复杂度:O(N*logN)

3. 空间复杂度:O(1)

4. 稳定性:不稳定

http://www.hengruixuexiao.com/news/48375.html

相关文章:

  • 中英文网站asp怎么做合肥建站公司seo
  • 八爪鱼 导入 wordpress网站seo优化技巧
  • 扬中网站建设案例班级优化大师官网下载
  • 北京手机网站开发费用seo运营招聘
  • 合作建站协议网络营销创意案例
  • 怎么在qq上自己做网站全网推广哪家正宗可靠
  • 网站服务器参数查询湖南广告优化
  • 公司网站设计制作开发方案线上线下一体化营销
  • wordpress博客防红跳转插件株洲seo优化推荐
  • 里水网站建设seo优化排名易下拉效率
  • 国外wordpress商城郑州搜索引擎优化公司
  • 深圳网站建设微信开发免费网站建设哪个好
  • 济南做公司网站免费制作logo的网站
  • 可做推广的网站常州seo
  • 怎么在av网站做引流深圳网络公司推广
  • 网站开发英文合同互联网域名注册查询
  • wordpress建站赚钱seo搜索优化
  • 甘肃企业网站建设怎么推广一个app
  • 网站建设属于前端还是后台营销型网站建设设计
  • wordpress工具栏石家庄seo培训
  • 网站系统建设合同范本百度推广电话号码
  • php与dw怎么做校园网站2021年中国关键词
  • 农业做的好的网站泰安短视频seo
  • 绍兴专门做网站的公司网店推广策划书
  • wordpress禁用原始的登陆win7一键优化工具
  • 沈阳建设网站长春seo主管
  • 北京专业做网站公司哪家好网上商城推广13种方法
  • 官网网上商城鼓楼网站seo搜索引擎优化
  • 网站建设企业的未来发展计划营销推广文案
  • 上海微盟企业发展有限公司seol英文啥意思