簡(jiǎn)述:從起始位置開(kāi)始一次往后查找帽驯,找到最小的那個(gè)元素所處的坐標(biāo),然后最小元素與起始位置的元素交換位置书闸。起始位置的坐標(biāo)+1尼变,繼續(xù)從起始位置往后查找。梗劫。享甸。
- 最優(yōu)時(shí)間復(fù)雜度 O(n2)
- 最壞時(shí)間復(fù)雜度 O(n2)
- 穩(wěn)定性:不穩(wěn)定(考慮升序每次選擇最大的情況)
python3
def select_sort(alist):
n = len(alist)
for i in range(n - 1):
min_index = i
for j in range(i + 1,n):
if alist[min_index] > alist[j]:
min_index = j
alist[i], alist[min_index] = alist[min_index], alist[i]
if __name__ == "__main__":
li = [54,23,12,44,55,88,1]
print(li)
select_sort(li)
print(li)
objective-c
- (void)select_sort:(NSMutableArray *)arr {
for (int i = 0; i < arr.count - 1; i++) { // 比較的次數(shù) [0,count-1) [0,1,2,3]
int min_index = i;
for (int j = i; j < arr.count; j++) { // 比較的元素
if (arr[min_index] > arr[j]) {
min_index = j;
}
}
NSNumber *temp = arr[i];
arr[i] = arr[min_index];
arr[min_index] = temp;
}
}