
排序算法
Mind_V
这个作者很懒,什么都没留下…
展开
-
常见排序算法——桶排序(箱子排序)bucket Sort
桶排序是一个经典的排序算法,特点是速度快,算法复杂度为O(n),且是稳排,当然也是最耗空间的一种算法。例如: 1)排序一组数[7,3,19,11,6,8,1,15] 最大数是19,那首先创建20个空桶,接着就是把这些数依次放进对应的桶中; 2)有重复的元素,如[7,3,9,11,6,3,7,14],这时候应该保证每个桶能放入多个元素,即最终保证排序稳定性,所以我选择用链表来存储每个桶中的元原创 2017-05-08 22:53:03 · 1064 阅读 · 0 评论 -
常见排序算法——选择排序、冒泡排序、插入排序和原地排序
#include<iostream> #include<algorithm> #include<iterator> using namespace std;//选择排序 template<typename T> void SelectionSort(T a[], int n) { for(int size = n; size > 1; --size) int indexOfMax =原创 2017-03-23 22:44:52 · 920 阅读 · 0 评论 -
Sort List —— 归并排序
Sort a linked list in O(n log n) time using constant space complexity.算法分析1、要求时间复杂度为 O(n log n),可以考虑归并与快排;2、本文使用归并,每次将链表从中间位置切断,一分为二;3、递归2过程,直到链表长度为1;4、依次从小到大合并两个链表,最后返回排序好的链表。原创 2017-10-05 14:34:49 · 409 阅读 · 0 评论