- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 归并排序
归并排序利用的是分治算法,复杂度可以达到O(nlogn) 空间复杂度是O(n),需要另开数组保存合并两个子序列之后的有序列。//将有二个有序数列a[first...mid]和a[mid...last]合并。void mergearray(int a[], int first, int mid, int last, int temp[]){ int i = first, j = mid
2015-03-11 21:53:05
147
原创 选择排序
选择排序,每次选出最小的数然后和前面的数交换。这样相比冒泡排序而言只用交换一次。复杂度n平方,并且是不稳定的。如(4,4,2,第一次将第一个4和2交换。)void select sort(int a[],int n){ for(i=0;i<n;i++) { temp=i; for(j=i+1;j<n;j++) {
2015-03-11 20:09:37
158
原创 冒泡排序
冒泡排序,复杂度n平方。大数沉底做法。void bubble sort(int a[],int n){ for(int i=0;i<n;i++) { bool flag=0; for (int j=1;j<n-i;j++) { if(a[j]<a[j-1]) {
2015-03-11 19:57:25
174
原创 希尔排序
希尔排序,n为数组长度,步长的选择每次都为n/2void shellsort1 (int a[],int n){ for(gap=n/2;gap>=1;gap=gap/2) //步长 { for (i = 0; i < gap; i++) { for (j = i + gap; j < n; j += gap) /
2015-03-11 19:34:48
150
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人