03-插入排序(python、oc)
簡述:從下標為1的元素開始往前查詢,依次與前邊的所有元素進行比較,直到與第0個元素比較,找到自己合適的位置後。開始查詢的起始下標+1,重複上一過程。
- 最優時間複雜度:O(n) (升序排列,序列已經處於升序狀態)
- 最壞時間複雜度:O(n²)
- 穩定
python3
# coding:utf-8
def insert_sort(alist):
"""插入排序"""
n = len(alist)
for j in range(1,n):
i = j
while i > 0:
if alist[i] < alist[i-1]:
alist[i], alist[i - 1] = alist[i - 1] , alist[i]
i -= 1
else:
break
if __name__ == "__main__":
li = [54, 26, 93, 17, 77, 31, 44, 55, 20]
print(li)
insert_sort(li)
print(li)
objective - c
- (void)insert_sort:(NSMutableArray *)arr {
for (int i = 1; i < arr.count; i++) {
int j = i;
while (j > 0) {
if (arr[j] < arr[j-1]) {
NSNumber *temp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = temp;
j -= 1;
} else {
break;
}
}
}
}
相關文章
- python插入排序Python排序
- 插入排序-by-Python排序Python
- 快速排序(oc/java/python/scala)排序JavaPython
- 選擇排序(OC/java/python/scala)排序JavaPython
- Python進階-演算法-插入排序Python演算法排序
- OC多型 - OC多型
- Python爬蟲教程-03-使用 chardet 檢測編碼Python爬蟲
- 批量修改OC類名指令碼 -- python指令碼Python
- python演算法 - 插入排序演算法Python演算法排序
- [java]插入排序及折半插入排序Java排序
- 三種插入排序 直接插入排序,折半插入排序,希爾排序排序
- 插入排序排序
- 演算法-03-棧演算法
- 資料結構--排序--插入排序--python語言描述資料結構排序Python
- 插入排序排序排序
- 03 插入排序排序
- python演算法與資料結構-插入排序(34)Python演算法資料結構排序
- 資料結構03-棧資料結構
- 03-凸優化問題優化
- 03-立即執行函式函式
- 03-序列化詳細
- OC WKWebView的JS與OC互動、Cookie管理WebViewJSCookie
- JavaScript ,Python,Go,java,C#系列演算法之【插入排序】JavaScriptPythonGoC#演算法排序
- Python演算法之---冒泡,選擇,插入排序演算法Python演算法排序
- OC Category、AssociatedObjectGoObject
- 數的插入排序排序
- 插入排序(PHP,C)排序PHP
- 排序之插入排序排序
- 如何理解插入排序?排序
- Tornado框架03-路由系統框架路由
- 03-邏輯學有哪些分支?
- OC-測試:monkey For OC(iOS 猴子測試)iOS
- python實現氣泡排序、插入排序以及快速排序演算法Python排序演算法
- OC(二)字串、方法字串
- oc的外掛
- OC:類與物件☀️物件
- ReactiveCocoa(OC版)React
- OC alloc、init、new