選擇排序,首先在未排序序列中找到最小或最大的元素,將其放到排序序列的開始位置。重複此過程。
選擇排序的主要優點與資料移動有關。如果某個元素位於正確的最終位置上,則它不會被移動。選擇排序每次交換一對元素,它們當中至少有乙個被移動最終位置上,因此對n個元素進行選擇排序總共進行至多n-1次交換。在所有完全依靠交換來移動元素的排序方法中,選擇排序是非常好的一種。
def
selection_sort
(alist):
n = len(alist)
# 需要進行n-1次選擇操作
for i in range(n-1):
# 記錄最小位置
min_index = i
# 從i+1位置到末尾選出最小資料
for j in range(i+1,n):
if alist[i] < alist[min_index]:
min_index = j
# 如果選擇出的資料不在正確位置,進行交換
if min_index != i:
alist[i] , alist[min_index] = alist[min_index],alist[i]
python描述氣泡排序
氣泡排序 bubble sort 是一種基於交換的排序演算法。重複地遍歷數列,一次比較兩個元素,如果它們的順序錯誤就將其交換。氣泡排序的具體原理如下 比較相鄰的元素。如果第乙個比第二個大,就交換二者 對每一對相鄰元素做同樣的操作,從開始第一對到結尾的最後一對。這步操作後,最後的元素即為最大的數。針對...
氣泡排序 python描述
原文 氣泡排序,有時也稱為下沉排序,是一種簡單的排序演算法,它反覆遍歷要排序的列表,比較沒對相鄰的專案,如果它們的順序不滿足條件則交換它們。重複遍歷列表,知道不需要交換,這時列表就是已排序的。其核心思想是 兩兩比較相鄰記錄的關鍵字,如果反序則交換,直到沒有反序記錄為止。比較相鄰的元素。如果第乙個比第...
Python 選擇排序
coding utf 8 選擇排序 在所有記錄中選擇最小的乙個元素,與第乙個記錄交換,依次,在其餘的記錄中選擇最小的元素與第二個元素交換 def sellectsort list list 4,1,9,13,34,26,10,7,4 m len list if m 2 如果是空表或只有乙個元素,返回...