回主目錄
排序》選擇排序》選擇排序
list:
0.概念+偽**+示例分析
1.選擇排序實現
2.question
0 start
基本概念:
維基百科
偽**:
function selectsort(a : list[1..n])} swap(a[index], a[max_index ]) #將最大的換到後面
index = index -1
}}
示例:[49, 38, 65, 97, 76, 13, 27]
current index 6 value= 27 max index: 3 value= 97
exchange -> [49, 38, 65, 27, 76, 13, 97]
current index 5 value= 13 max index: 4 value= 76
exchange -> [49, 38, 65, 27, 13, 76, 97]
current index 4 value= 13 max index: 2 value= 65
exchange -> [49, 38, 13, 27,65, 76, 97]
current index 3 value= 27 max index: 0 value= 49
exchange -> [27, 38, 13, 49, 65, 76, 97]
current index 2 value= 13 max index: 1 value= 38
exchange -> [27, 13, 38, 49, 65, 76, 97]
current index 1 value= 13 max index: 0 value= 27
exchange -> [13, 27, 38, 49, 65, 76, 97]
done
1 start
實現**
def select_sort(l):index = len(l) -1
while index:
max_index = index
for i in range(index):
if l[i] > l[max_index]:
max_index = i
if l[max_index] > l[index]:
l[index],l[max_index] = l[max_index], l[index]
index -= 1
2.start
a.概念,過程描述?
b.交換次數,比較次數,賦值次數?
c. 時間複雜度?空間複雜度?是否是穩定排序?
d.適用場景,何種情況下表現最優
資料結構 排序 選擇排序演算法
選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與資料移動有關。如果某...
資料結構 排序演算法之選擇排序
一 選擇排序 最差的排序演算法 在選擇排序中,假定我們需要公升序,因此在每次排序中,需要找到最大的元素,將其放在最後,在每一次的迴圈中,都是將最大的元素放在最後,因此對於資料較多的陣列,迴圈的次數將與陣列中元素的個數一致,因此,在對於這種陣列進行排序時,將十分的浪費時間。有關選擇排序的思路,如下所示...
資料結構 排序演算法(2) 選擇排序
表現最穩定的排序演算法之一,因為無論什麼資料進去都是o n2 的時間複雜度,所以用到它的時候,資料規模越小越好。唯一的好處可能就是不占用額外的記憶體空間了吧。選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理 首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位...