- 博客(8)
- 收藏
- 关注
原创 查找--二分查找
#include <iostream>#include<vector>using namespace std;int main(){ vector<int> data; int n; cin>>n; for(int i=0;i<n;i++) { int a; cin>>a; ...
2018-04-11 19:45:41
70
原创 排序方法比较
排序方法 平均时间 最坏情况 辅助存储空间简单排序 O(n^2) O(n^2) O(1)快速排序 O(nlogn) O(n^2) O(logn)堆排序 O(nlogn) O(nlogn) O(1)归并排序 ...
2018-04-10 22:15:09
79
原创 排序--简单选择排序
//每一趟在n-i+1个记录中选取关键字最小的记录作为有序序列中第i个记录//总的时间复杂度O(n^2)#include <iostream>#include<vector>using namespace std;void selectsort(vector<int> &data,int len){ int i,j,k; for(i=0;i&...
2018-04-10 21:59:23
136
原创 排序--快速排序
//任意选取一个记录作为枢轴,然后将所有关键字小于它的记录都放置在它之前,关键字大于它的记录都放置在它之后,以该枢轴为分界线,将整个序列划分为两个子序列,完成一趟快速排序,然后对两个子序列进行同样的操作,直到子序列不可再分//平均时间复杂度为o(nlog2n) ,k为常数,在所有排序方法中,快排平均性能最好,但当记录序列基本有序时,快排将退化为冒泡排序//快排时递归的。,需要一个栈存放每层递...
2018-04-10 21:40:02
119
原创 排序--冒泡排序
#include <iostream>#include<vector>using namespace std;int main(){ vector<int> data; int a; while(cin>>a) { data.push_back(a); } for(int i=0;i<data....
2018-04-10 17:38:57
94
原创 排序--希尔排序
//缩小增量排序//待排序列按关键字基本有序时,直接插入排序的效率很高//希尔排序思想:将整个待排记录分割为若干子序列分别进行直接插入排序,待整个序列中的记录基本有序时,再对全体记录进行一次直接插入排序,就可以完成整个排序工作//增量序列中的值没有除1以外的公因子,且最后一个增量必须等于1//子序列的构成不是逐段分割,而是将相隔某个增量的记录组成一个子序列#include <iostream...
2018-04-10 17:30:09
96
原创 排序--二分插入排序
//在插入排序的基础上,查找的过程用二分查找来实现,减少了比较次数,移动记录次数不变#include <iostream>#include<vector>using namespace std;int main(){ vector<int> data; int a; while(cin>>a) data.push_ba...
2018-04-10 17:09:40
116
原创 排序--插入排序
//插入排序,即每步将一个待排序的记录按其关键字大小插入到前面已排序好的表的适当位置,知道全部插入完成为止//空间效率:只需要一个记录的辅助空间//时间效率://比较操作的次数:最小:n-1次 最大:n(n-1)/2次//移动操作的次数:最小:0次 最大:(n+2)(n-1)/2次//平均情况:比较O(n^2) 移动O(n^2)#include <iostream>#inclu...
2018-04-10 16:50:19
57
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人