排序>>選擇排序>>選擇排序
List:
1 2 |
0.概念+示例分析 1.插入排序實現 |
- start
基本概念:
維基百科http://zh.wikipedia.org/wiki/%E6%8F%92%E5%85%A5%E6%8E%92%E5%BA%8F
插入排序,簡單來說就是每次拿一個新的數,將其插入到有序序列中.
示例:
1 |
[8, 4, 3, 1, 6, 9, 2, 7] |
index- 1 #從第二個數開始
1 |
move 1 , change-> [4, 8, 3, 1, 6, 9, 2, 7] #移動一次,插入 |
index- 2
1 |
move 2 , change-> [3, 4, 8, 1, 6, 9, 2, 7] #移動兩次,插入 |
index- 3
1 |
move 3 , change-> [1, 3, 4, 8, 6, 9, 2, 7] |
index- 4
1 |
move 1 , change-> [1, 3, 4,6, 8, 9, 2, 7] |
index- 5
1 |
move 0 , nochange -> [1, 3, 4, 6, 8, 9, 2, 7] |
index- 6
1 |
move 5 , change-> [1,2, 3, 4, 6, 8, 9, 7] |
index- 7
1 2 3 |
move 2 , change-> [1, 2, 3, 4, 6,7, 8, 9] [1, 2, 3, 4, 6, 7, 8, 9] |
- start
插入排序python實現
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#!/usr/bin/python # -*- coding:utf-8 -*- #插入排序 #@author: wklken@yeah.net def insert_sort(l): print l for i in range(1,len(l)): #從第二個元素開始 value = l[i] while i >= 1 and l[i-1] > value: l[i] = l[i-1] i -= 1 l[i] = value return l l = [8, 4, 3, 1, 6, 9, 2, 7] print insert_sort(l) |
改進及優化:
1.加入監控,已排序完成直接退出
2.使用二分插入排序,即,處理某個節點往前插入的時候,使用二分查詢插入
打賞支援我寫出更多好文章,謝謝!
打賞作者
打賞支援我寫出更多好文章,謝謝!
任選一種支付方式