排序
Frank__Chen
这个作者很懒,什么都没留下…
展开
-
常见排序算法c++总结
总结一下常见的排序算法,包括插入排序,冒泡排序,快速排序,1.直接插入排序整个序列分为有序区和无序区,取第一个元素作为初始有序区,然后第二个开始,依次插入到有序区的合适位置,直到排好序。下面是具体代码实现:void InsertSort2(vector<int> &num){ for(int i = 1;i < num.size();++i){...原创 2018-11-07 19:54:26 · 130 阅读 · 0 评论 -
堆排序算法
一、堆排序算法的基本特性时间复杂度:O(n*lgn)最坏:O(n*lgn)空间复杂度:O(1)不稳定。堆排序是一种选择排序算法,与关键字的初始排列次序无关,即就是在最好,最坏,一般的情况下排序时间复杂度不变。对包含n个数的输入数组,平均时间为O(nlgn),最坏情况(已经排好序)也是是O(nlgn),最好情况(完全无序)也是O(nlgn)。由于不但时间复杂度少,而且空间复杂度也是最少的...原创 2018-12-05 18:46:54 · 284 阅读 · 0 评论 -
基数排序(桶排序)--静态链表实现
原理 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的...原创 2018-12-16 19:49:59 · 708 阅读 · 0 评论