排序小结

排序的稳定性:如果两条记录的关键字相等,排序后相对顺序仍然未发生改变,则为稳定排序。否之则为不稳定排序。
内排序与外排序:数据全部被放置在内存中进行比较称为内排序。

冒泡排序:固定i,从前往后,j>=i,从后往前,依次比较交换相邻的两个数。
优化:当前面一次未发生任何交换,说明已经有序,后面无需再依次判断,设置flag,发生交换的话设置为true,外围i遍历时以flagw==true为条件,否则跳出循环。

选择排序:固定i,j>=i+1,依次比较i和j的大小,每次得到min,依次放在前面。

插入排序:在有序序列中插入一个数。

效率上:插入排序>选择排序>冒泡排序

堆排序:具体参考我写的博客堆排序  初始建堆为O(n),每次调整堆为O(logn),时间复杂度为O(nlogn),空间复杂度为O(1),不稳定排序

归并排序:具体参考我写的博客归并排序的递归与非递归实现理解

快排:最坏情况下,时间复杂度为O(n2),空间复杂度为O(n)

优化:三数取中,九数取中(获得更好的枢轴),小数量时用直接插入排序,优化递归操作(尾递归,判断条件改为while(low<high),前一部分递归,后面low=pivot+1,迭代代替部分递归)

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值