【初赛】——排序

还有一个月就要开始我的初赛了!

如果没搞好就前功尽弃了呢。

所以今天开始努力复习初赛知识!

 

   计数排序(桶排)就是对于一个序列,找小于某一个数的数的数量,就能直接得到这个数排序后所在位置,是一种牺牲空间换时间的做法,十分稳定。

  选择排序就是每次遍历数组找到最小的元素,放在头部,再从剩下的里面找次小的,放在头部,重复直到排序完成,非常慢,数组的位置也会影响时间,所以不稳定。

  冒泡排序比较熟悉,就是每两位比较一下大小,进行交换操作等,但是无论数组怎样变换,遍历的次数是固定的,所以也很稳定。

  插入排序是一个从无到有的过程,每次从数组中随机挑一个数字,在排序数组中找到合适位置插入,因为每次遍历找到元素,还要将后面的部分移动一次,所以实际上复杂度是稳定1+2+…+n=O(n^2)的。(另外还有二分插排这种东西,也是O(n^2))。

  快排就是sort,将排序序列根据一个key分成两部分,左边小于key,右边大于key,再分治解决,但是不稳定,最优情况和二分法差不多,但最坏能到达2次方级别。

  归并排序就是完全利用分治思想来排序,先不断二分,最后将分出来的两份对应比较大小,交换顺序的操作,递归时合并即可,由于完全利用二分思想,所以递归层数也是固定的,稳定O(nlogn)。

  堆排序是利用堆维护的一种排序方式,每次将堆顶值取出,再将序列尾元素放到堆头,进行一次下沉操作,新的最大值就出来了。由于下沉操作不稳定,所以整个排序就不稳定了,但平均复杂度还是O(nlogn)的。

  基数排序是根据数字的位来排序的,就不多叙述了。

  希尔排序,又称增量排序,可以认为是插排的改进版,O(n^1.3~2),不稳定。

 

 

 

 

转载于:https://www.cnblogs.com/Nelson992770019/p/11529984.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值