
排序问题
_Index_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
排序(5)----归并排序及证明其时间复杂度O(Nlog^N)
归并问题可以解决有多个逆序对和最小和问题。 下面证明其时间复杂度: 对N个数归并排序的用时等于对两个大小为N/2的递归排序所用的时间再加上合并的时间: T(N)=2T(N/2)+N 两边同时除N T(N)/N=T(N/2)/(N/2)+1; T(N/2)/(N/2)= T(N/4)/(N/4)+1; . ...原创 2019-11-29 00:13:08 · 685 阅读 · 0 评论 -
排序(4)---堆排序
堆排序: 把堆顶元素不断的和末尾元素互换,互换后使得末尾元素为n-1,再从堆顶元素往下滤,使之保持堆的性质即可。 #include<bits/stdc++.h> using namespace std; typedef struct Heap{ int capacity; int *data; } *heap; void percolatedown( heap h,int ...原创 2019-11-28 18:46:51 · 102 阅读 · 0 评论 -
排序(3)--桶式排序
事先设置桶的最大个数为要排列数中的最大值,把要排列的数放入相应下标对应的桶里,最后,从左到右遍历桶,桶里的个数就是该桶的下标所占有的个数,输出桶的下标即可。 桶式排序是以空间换时间,并且对要排列的数有限制,不能为负。 #include<bits/stdc++.h> using namespace std; void bucksort(int a[],int n,int m) { ...原创 2019-11-28 13:42:01 · 169 阅读 · 0 评论 -
排序(2)---插入排序、希尔排序
插入排序思想: 有一串无序数列,从左到右依次排序把数放入排序篮里。 如: 23 46 0 8 11 18 插入46 (23 46) 0 8 11 18 插入23 (0 23 46) 8 11 18 插入8 (0 8 23 46) 11 18 插入11 ...原创 2019-11-28 12:38:50 · 93 阅读 · 0 评论 -
排序(1)--快速排序及证明平均复杂度O(n*lgn)与最坏情况O(N^2)
快速排序: 首先说下复杂度O(lgn)是如何证明的,在一个数组中查一个数,一直对半下去… 查询次数 1 2 3 k 待查询数量 N/2 N/(2^2) N/(2^3) N...原创 2019-11-28 00:16:30 · 758 阅读 · 0 评论