标签:最小 loading 提前 交换排序 增加 堆排 查找 code 小数
排序
插入排序:
直接插入排序
时间复杂度O(n^2)(比较n^2/2+移动n^2/2)
折半插入排序:每次通过折半查找法找到插入的位置。这样会比直接插入中使用的顺序查找法快
但时间复杂度仍为O(n^2)
希尔排序:先将待排序列分组,对每组进行直接插入排序,增加数据量重新分组。
是不稳定的排序
交换排序
冒泡排序:会先得到最大的数
时间复杂度为O(n^2)
快速排序:冒泡排序的改良,先选择一个枢轴,把比他小的数放在前面,比他大的数放在后面,形成两个相对有序的子表,在子表中重复操作,直到最后剩下一个数
时间复杂度约为O(nlog2n)
简单选择排序:每次遍历a[i]到a[n],选出最小数字提前。
时间复杂度也为O(n^2)
树形选择排序:先对n个记录两两比较,再对其中n/2个较小记录比较,如此重复直至选出最小。
如
堆排序:
堆顶元素是大于小面子树中所有元素的是大根堆
若从小到大排序,需要用到大根堆
如从大到小排序则要建立小根堆
堆排序不稳定。
归并排序:依次将元素两两归并并排序,然后对归并得到的集合再次进行两两归并后排序...直到只剩下一个集合。
时间复杂度为O(nlog2n)
但空间复杂度为O(n),需要开辟大量辅助存储空间。
标签:最小 loading 提前 交换排序 增加 堆排 查找 code 小数
原文地址:https://www.cnblogs.com/s1111/p/13284095.html