02-選擇排序(python、oc)

簡述:從起始位置開始一次往后查找,找到最小的那個元素所處的坐標,然后最小元素與起始位置的元素交換位置。起始位置的坐標+1,繼續從起始位置往后查找。。。

  • 最優時間復雜度 O(n2)
  • 最壞時間復雜度 O(n2)
  • 穩定性:不穩定(考慮升序每次選擇最大的情況)
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++) { // 比較的次數 [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;
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容