選擇排序需要額外的儲存空間,且排序的時間為o(n^2),其實為o(1/2(n^2))但是常數可以省略。
選擇排序每次都遍歷一遍剩下的數,然後選出最小的乙個數放到排序好的儲存空間中去。
python中沒有陣列,所以用列表(list)代替。
def
find_smallest
(array):
smallest = array[0]
for i in range(len(array)):
if smallest > array[i]:
smallest = array[i]
return smallest
defselection_sort
(array):
sorted =
for n in range(len(array)):
smallest = find_smallest(array)
array.remove(smallest)
return sorted
if __name__ == '__main__':
list1 = [4,3,2,1,-2,3,5,3]
print list1
print selection_sort(list1)
執行結果
[-2, 1, 2, 3, 3, 3, 4, 5]
演算法學習之排序 選擇排序(Java)
public class selectsort int temp array i array i array leastindex array leastindex temp public static void main string args select array for int a 0 a...
排序演算法學習系列 選擇排序
選擇排序是最簡單直觀的一種演算法,基本思想為每一趟從待排序的資料元素中選擇最小 或最大 的乙個元素作為首元素,直到所有元素排完為止,簡單選擇排序是不穩定排序,平均時間複雜度為o n 2 o n 2 o n2 主要思路 在演算法實現時,每一趟確定最小元素的時候會通過不斷地比較交換來使得首位置為當前最小...
經典排序演算法學習筆記五 直接選擇排序
資料結構 陣列最差時間複雜度 o n 2 最優時間複雜度 o n 2 平均時間複雜度 o n 2 最差空間複雜度 n total,o 1 auxiliary 首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置。然後,再從剩餘未排序元素中繼續尋找最小 大 元素,放到已排序序列的末尾。以此類...