
排序算法总结
文章平均质量分 57
kyowill
这个作者很懒,什么都没留下…
展开
-
归并排序
void mergesort(int* arr, int n){ if(n == 1) { return; } mergesort(arr, n/2); mergesort(arr + n/2, n - n/2); vector vec; int i = 0; int j = 0; int les = n原创 2015-08-11 23:04:19 · 314 阅读 · 0 评论 -
快速排序容易理解版
void quickSort(int arr[], int left, int right){ int i = left, j = right; int tmp; int pivot = arr[(left + right) / 2]; /* partition */ while(i <= j) { while(a原创 2015-08-11 21:18:08 · 365 阅读 · 0 评论 -
堆排序及top K 算法
static void swap(int* left,int *right){ int tmp=*left; *left=*right; *right=tmp;}void adjustdown(int* arr,int i,int end){ int key=arr[i]; int p=i; int left=2*p+1; while(left<=end) { if(k原创 2015-07-10 16:52:40 · 872 阅读 · 0 评论 -
写一个分段双调排序算法
根据主函数中的测试用例输出结果为:Timeuse= 0.0000030.2 0.8 0.4 0.5 0.6 0.1 0.2 实现了分段排序1.void segmentedBitonicSort(float* data, int* seg_id, int* seg_start, int n, int m)对每一段用 双调排序算法 进行排序利用step遍历数组中的每个元原创 2015-03-31 08:50:11 · 1608 阅读 · 0 评论 -
链表实现插入排序
word* link_sort_by_cnt(word* head){ word* pcur,*ppre,*pwork,*pnext; if(head==NULL||head->next==NULL) return head; pwork=head;//head=NULL while(pwork) { pnext=pwork->next; pwork->next=NULL;原创 2015-07-10 16:59:27 · 421 阅读 · 0 评论 -
几种排序的源代码
void bubble_sort(int* a,int len){ int up=0; int down=len-1; int i,temp; while(up<down) { for(i=up+1;i<down;i++) { if(a[i-1]>a[i]) { temp=a[i-1]; a[i-1]=a[i]; a[i]=temp;原创 2015-07-21 22:25:39 · 694 阅读 · 0 评论 -
小白学c++之几种排序比较
堆排序 归并排序 快速排序最坏时间 O(nlogn) O(nlogn) O(n^2)最好时间 O(nlogn) O(nlogn) O(nlogn)平均时间 O(nlogn) O(nlogn) O(nlogn)辅助空间 O(1) O(n) O转载 2014-11-08 16:29:06 · 487 阅读 · 0 评论