資料結構
陣列最差時間複雜度
o(n^2)
最優時間複雜度
o(n^2)
平均時間複雜度
o(n^2)
最差空間複雜度
о(n) total, o(1) auxiliary
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
然後,再從剩餘未排序元素中繼續尋找最小(大)元素,放到已排序序列的末尾。
以此類推,直到所有元素均排序完畢。
repeat (numofelements - 1) times
set the first unsorted element as
the minimum
foreach of the unsorted elements
if element
set element as
newminimum
swap minimum with first unsorted position
void selection_sort(int arr, intlen)
}
經典演算法學習 直接選擇排序
直接選擇排序和直接插入排序類似,都將資料分為有序區和無序區,所不同的是直接插入排序是將無序區的第乙個元素直接插入到有序區以形成乙個更大的有序區 而直接選擇排序是從無序區選乙個最小的元素直接放到有序區的最後。示例 上傳至 演算法描述如下 1 初始時,陣列全為無序區為a 0.n 1 令i 0。2 在無序...
經典演算法學習 直接選擇排序
直接選擇排序和直接插入排序類似,都將資料分為有序區和無序區,所不同的是直接插入排序是將無序區的第乙個元素直接插入到有序區以形成乙個更大的有序區 而直接選擇排序是從無序區選乙個最小的元素直接放到有序區的最後。示例 上傳至 演算法描述如下 1 初始時,陣列全為無序區為a 0.n 1 令i 0。2 在無序...
演算法學習筆記 排序之選擇排序
選擇排序需要額外的儲存空間,且排序的時間為o n 2 其實為o 1 2 n 2 但是常數可以省略。選擇排序每次都遍歷一遍剩下的數,然後選出最小的乙個數放到排序好的儲存空間中去。python中沒有陣列,所以用列表 list 代替。def find smallest array smallest arr...