每天一算法 -- (排序算法总结)

本文对比了冒泡排序、选择排序及插入排序等几种简单的排序算法。讨论了它们的应用场景、性能特点以及稳定性,并分析了不同算法的空间复杂度。
一、集中排序算法的比较

  1.一般情况下几乎不太使用冒泡排序,它过于简单了,以至于可以毫不费力的写出来。然而当数据量很小的时候,它会有些应用的价值。

  2.选择排序虽然把交换次数降到了最低,但比较的次数仍然很大,当数据量小的时候,并且交换数据相对于比较数据更加耗时的情况下,可以应用选择排序。

  3.单大多数情况下,假设当数据量比较小或者基本有序时,插入排序算法时三种简单排序算法中最好的选择。对于更大数据量的排序来说,快速排序通常是最快的方法。

  4.除了在速度方便比较排序算法外,还有一种对各种算法的衡量标准是算法需要的内存空间有多大。冒泡排序、选择排序、插入排序都可以“就地”完成排序,即除了初始的数组外,几乎不需要其他的内存空间,所有的排序算法都需要一个额外的变量来暂时存储交换时的数据项。

二、小结

  1.前面的三种算法都假定了数组作为数据存储结构。

  2.排序包括比较数组中数据项的关键字和移动相应的数据项(实际上,是数据项的引用),知道它们排好序为止。

  3.前面的三种算法的事件复杂度最坏都是O(n2)。不过,某些情况下某个算法可以比其他算法快很多。

  4.冒泡排序是效率最差的算法,但它对简单。

  5.插入排序算法是前面三种排序算法中应用最多的。

  6.如果具有相同关键字的数据项,经过排序它们的顺序保持不变,这样的排序就是稳定的。

  7.前面三种算法除了需要初始数组之外,都只需要一个临时变量。

转载于:https://www.cnblogs.com/xbq8080/p/6846737.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值