计数排序
摘要:计数排序有四个步骤: (1)首先会对每个输入进行频率统计,得到元素的频率表; (2)然后将频率表转换为该元素的开始索引; (3)根据各个元素的开始索引,将相同元素分类到临时数组中。 (4)最后将临时数组中的元素写回到原数组中。 1 /*计数排序*/ 2 function countingSort(a
阅读全文
posted @
2020-01-19 15:51
大黑ylx
阅读(164)
推荐(0)
堆排序
摘要:堆排序是指利用堆这种数据结构所设计的一种排序算法。近似于完全二叉树,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。它的时间复杂度是O(nlog2(n)),空间复杂度是O(1),其算法不稳定。
阅读全文
posted @
2018-10-08 10:53
大黑ylx
阅读(121)
推荐(0)
归并排序
摘要:归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。其中时间复杂度O(nlog2(n)),空间复杂度O(n),算法相对稳定。
阅读全文
posted @
2018-10-06 09:46
大黑ylx
阅读(145)
推荐(0)
希尔排序
摘要:希尔排序是插入排序的改进版本,它与插入排序的不同之处在于,它会优先比较距离较远的元素。其中它的时间复杂度为O(n^1.3),空间复杂度O(1),算法相对不稳定。
阅读全文
posted @
2018-10-03 11:02
大黑ylx
阅读(154)
推荐(0)
插入排序
摘要:插入排序的基本工作原理:对于未排序列,在已排序列中从后向前扫描,找到相应的位置并插入。其中时间复杂度O(n^2),空间复杂度O(1),算法相对稳定。
阅读全文
posted @
2018-10-02 18:13
大黑ylx
阅读(800)
推荐(0)
冒泡排序
摘要:冒泡排序的基本原理是:每次比较两个元素,顺序错误就交换两个,直到没有再需要交换。其中时间复杂度为 O(n^2),空间复杂度为O(1),算法相对稳定。
阅读全文
posted @
2018-10-02 17:25
大黑ylx
阅读(99)
推荐(0)
选择排序
摘要:选择排序的工作原理是:每次在排序序列中找到最小(大)元素,放在起始位置,然后在剩下的序列中继续寻找最小(大)元素。其中时间复杂度是O(n^2),空间复杂度O(1),算法不稳定。
阅读全文
posted @
2018-10-02 13:28
大黑ylx
阅读(135)
推荐(0)
快速排序
摘要:快排的思路:找到一个基准数,把大于基准数的数字放在基准数的右边部分,小于基准数的放在左边部分;排完后,再对左边部分和右边部分分别进行上述操作,递归下去,直到子序只剩下一个数字。 其中快排的时间复杂度为O(nlogn),空间复杂度为O(nlogn),但算法相对不稳定。
阅读全文
posted @
2018-09-17 10:53
大黑ylx
阅读(147)
推荐(0)