1 選擇排序
最壞情況:時間複雜度為o(n^2);
平均時間複雜度o(n^2);
最好情況:時間複雜度為o(n^2);
最差空間複雜度:需要輔助空間o(1);不是穩定排序
**實現
void swap(int &a, int &b)
void selectionsort(int a, int n)
if(k != i) swap(a[i], a[k]);
}}
2 氣泡排序
最壞情況:時間複雜度為o(n^2);
平均時間複雜度o(n^2);
最好情況:陣列已經排序,時間複雜度為o(n);
最差空間複雜度:需要輔助空間o(1);是穩定排序
**實現
void swap(int &a, int &b)
void bubblesort(int a, int n)
}
3 直接插入排序
最壞情況:陣列反序,時間複雜度為o(n^2);
平均時間複雜度o(n^2);
最好情況:陣列已經排好序,時間複雜度為o(n);
最差空間複雜度:總共o(n),需要輔助空間o(1),是穩定排序
**實現
void insertionsort(int a, int n)
a[j+1] = key;
}}
4 希爾排序
最壞情況:時間複雜度為o(n^2);
平均時間複雜度:o(n^1.25);
最好情況:時間複雜度為o(nlogn);
最差空間複雜度:總共o(n),需要輔助空間o(1);
不是穩定排序
**實現
void shellsort(int a, int n)
a[j+gap] = key;
} }}
5 歸併排序
典型的分治法,最壞情況:時間複雜度為o(nlogn);
平均時間複雜度o(nlogn);
最好情況:時間複雜度為o(nlgn);
最差空間複雜度:需要輔助空間o(n),是穩定排序
**實現
void merge(int c, int b, int low, int mid, int high)
if(i > mid)
for(int r = j; j <= high; j++)
b[k++] = c[j];
else
for(int r = i; i <= mid; i++)
b[k++] = c[i];
}void copy(int a, int b, int left, int right)
void mergesort(int a, int left, int right, int b)
}
6 快速排序
典型的分治法,最壞情況:陣列已經排序,每次分割槽都為0個元素與n-1個元素,時間複雜度為o(n^2);
平均時間複雜度o(nlogn);
最好情況:時間複雜度為o(nlogn);
最差空間複雜度:需要輔助空間o(logn);
不是穩定排序
**實現
void swap(int &a, int &b)
// 每次選擇最右邊元素作為基準將a[p:r]進行分割槽
int partion(int a, int p, int r)
} swap(a[i+1], a[r]);
return i+1;
}void quicksort(int a, int p, int r)
}
7 堆排序
最壞情況:時間複雜度為o(nlogn);
平均時間複雜度o(nlogn);
最好情況:時間複雜度為o(nlogn);
最差空間複雜度:需要輔助空間o(1);不是穩定排序
**實現
void swap(int &a, int &b)
// 維持堆結構
void maxheap_keep(int a, int i, int heap_size)
}// 建立初始堆, o(n)
void build_maxheap(int a, int n)
void heapsort(int a, int n)
}
各種排序演算法實現
2016年7月7日20 30 37 排序的目的 查詢 排序是查詢的前提 google搜尋 分類 冒泡 穩定o n 2 插入 穩定o n 2 從前往後依次插入到前面的有序部分,始終保持前面部分有序 選擇 n 2 先從所有序列中選擇最小的數字與第乙個數字互換,再從餘下的序列中尋找次最小值與第二個數字互換...
各種排序演算法java實現
插入排序 package org.rut.util.algorithm.support import org.rut.util.algorithm.sortutil author treeroot since 2006 2 2 version 1.0 public class insertsort ...
各種排序演算法java實現
插入排序 package org.rut.util.algorithm.support import org.rut.util.algorithm.sortutil author treeroot since 2006 2 2 version 1.0 public class insertsort ...