排序算法mark

冒泡排序(BubbleSort):将数朝着一个方向不断地冒泡,不断地遍历(已排序列不需要遍历)。

改进:双向冒泡排序(Bidirectional BubbleSort):将数进行两个方向(从前往后,从后往前)的冒泡,使两端冒泡成两个序列(这样,已排序列就是一前一后两个,相比传统的冒泡多了一个)


选择排序(SelectionSort):1.从无序区选择序列中的最小元素;(遍历比较)2.与有序区的第一个元素交换,使有序区元素越来越多。

PS:不用中间元素进行交换数据的方法(a^=b;b^=a;a^=b),前提的a!=b


Shell 排序:分组进行插入排序,设置span进行分组


直接插入排序(Insertion Sort):在有序区遍历比较新元素,找到位置

改进:二叉插入排序(Binary Insertion Sort):利用二分法查找新元素的位置

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------分割线之上时间复杂度为o(n2),之下的时间复杂度为o(nlogn)-----------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

快速排序(Quick Sort ):1.从序列中找到一个元素作为基准(中间元素,性能最佳);

2.将序列进行重新排序,比基准大的数全部放在左边,比基准小的数全部放在右边;

3.递归排序。(要先判断下标的大小关系)


归并排序(Merge Sort):1.分组,排序(递归)

2.合并有序数组(申请一个空间为每个分组之和的空间,用于防止数据)


堆排序(heap Sort):堆化数组(堆顶的数为最大或者最小),交换前后,下调子堆。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值