各种排序方法对比(补充中)

28 篇文章 1 订阅
重点从时间复杂度、空间复杂度、适用情况等多个方面进行综合比较。
1.简单选择排序
(1)基本原理:对于给定的一组记录,经过第一轮比较后得到最小的值,然后将该记录与第一个记录的位置进行交换;
接着对不包括第一个记录以外的其他记录进行第二轮比较,得到最小记录并与第二个记录进行位置交换;重复该过程,
直到进行比较的记录只有一个为止。
(2)特点:交换移动的数据次数比较少。
(3)算法时间复杂度:O(n^2)。辅助空间O(1)。
(4)程序设计要点:嵌套循环,记录最小数和最小数的位置。
2.快速排序
(1)基本原理:先在数组中选择一个数字,接下来把数组中的数字分为两部分,比选择的数字小的数字移动到数组的左边,
比选择的数字大的数字移到数组的右边。然后用递归的思路分别对每次选中的数字左右两边进行排序。
      当初始序列整体或者局部有序时,快速排序的性能会下降,此时快速排序将退化为冒泡排序。
(2)算法最好时间复杂度O(nlogn)(每次区间划分,基准关键字为待排序的记录中间值)
         最坏的时间复杂度O(n^2)  (每次区间划分,基准关键字左边或者右边序列为空,而另一边的记录只比原来少了一项)
         平均时间复杂度O(nlogn)
         空间复杂度O(logn)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值