选择排序 算法
算法思路
- 維護(hù)一段有序數(shù)列,同時(shí)遍歷待排序數(shù)列,找到最小的元素插入有序數(shù)列中
- 重復(fù),直到待排序數(shù)列沒有剩余元素
代碼實(shí)現(xiàn)
void select_sort(vector<int> &arr) {for (int i = 0;i < arr.size(); ++i) {int temp = arr[i];int index = i;for (int j = i + 1; j < arr.size(); ++j) {//找到待排序數(shù)列的最小元素if(arr[j] < temp) {temp = arr[j];index = j;}}swap(arr[i],arr[index]);//置換}
}
算法分析
時(shí)間復(fù)雜度:無論最好情況還是最壞情況,都是O(n^2),因?yàn)槊看芜x擇最小元素都要遍歷剩余的所有元素
空間復(fù)雜度:O(1),swap時(shí)的臨時(shí)變量
總結(jié)
- 上一篇: 希尔排序 算法
- 下一篇: 直径1.4米梧桐树高七米左右两棵值多少钱