直接選擇排序最好最壞情況時間複雜度均為o(n^2),不穩定,其優勢在於最多隻需交換n次,交換操作比比較操作耗時。
1. 演算法思想
從待排序序列中選擇最小的元素,放入有序序列的末尾;如此迴圈直至待排序序列為空。
2. 時間複雜度
最好情況 o(n^2):序列正序有序,無需交換元素,但比較時間為o(n^2)
最壞情況 o(n^2):序列逆序有序,交換n次,比較o(n^2)
3. 空間複雜度 o(1)
就地排序,輔助空間為常數級
4. 穩定性
不穩定。存在不相鄰元素的交換
5. **實現(c語言)
void selectsort(int *a, int n)} if (k != i)
}}
排序演算法(直接選擇排序)
為什麼我們要叫直接選擇排序呢?在最開始的時候,待排序區間是整個陣列,從區間選乙個最小的與區間第乙個交換位置,然後將待排序區間從第二個開始,繼續以上操作,直至待排序區間長度為0 我們還是以為例 初始 3 5 7 9 8 6 2 1 4 0 第一趟 05 7 9 8 6 2 1 4 3 第二趟 0 17...
排序演算法 直接選擇排序
選擇排序的基本思想是 每一趟從待排序的記錄中選出關鍵字最小的記錄,順序放入已排序數列的最後,直到全部記錄排序完畢。直接選擇排序是一種簡單直觀的排序演算法。它的工作原理 首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列...
每日演算法 選擇排序演算法之直接選擇排序
1 演算法簡介 選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下 2 演算法描述和分析 n個記錄的檔案的直接選擇排序可經過n 1趟直接選擇排序得到有序結果 1 初始狀態 無序區為r 1.n 有序區為空。2 第i趟排序 i 1,2,3.n 1 第i趟排序開始時,當前...