一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python中使用插入排序算法的簡單分析與代碼示例

Python中使用插入排序算法的簡單分析與代碼示例

2020-08-22 09:16Python教程網 Python

這篇文章主要介紹了Python使用插入排序算法的簡單分析與代碼示例,插入算法的平均時間復雜度為O(n^2),需要的朋友可以參考下

問題描述

將一組隨機排列的數字重新按照從小到大的順序排列。

插入算法

每次從數組中取一個數字,與現有數字比較并插入適當位置。

如此重復,每次均可以保持現有數字按照順序排列,直到數字取完,即排序成功。

這很像打牌時的抓牌情況,

第一個條件:保持手上的牌的順序是正確的
第二個條件:每次抓到新的牌均按照順序插入手上的牌中間。
保證這兩條不變,那么無論抓了幾張牌,最后手上的牌都是依照順序排列的。

Python 實現:

?
1
2
3
4
5
6
7
8
9
def insertion_sort(n):
 if len(n) == 1:
  return n
 b = insertion_sort(n[1:])
 m = len(b)
 for i in range(m):
  if n[0] <= b[i]:
   return b[:i]+[n[0]]+b[i:]
 return b + [n[0]]

   
另一個版本:

?
1
2
3
4
5
6
7
8
9
10
11
12
def insertion_sort(lst):
 if len(lst) == 1:
  return lst
 
 for i in xrange(1, len(lst)):
  temp = lst[i]
  j = i - 1
  while j >= 0 and temp < lst[j]:
   lst[j + 1] = lst[j]
   j -= 1
  lst[j + 1] = temp
 return lst

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩精品欧美国产精品亚 | 午夜AV亚洲一码二中文字幕青青 | 亚洲福利区 | 国产亚洲精品第一综合另类 | 夫妻性生活一级黄色片 | 91短视频破解版 | 韩国理论三级在线观看视频 | 成人在线一区二区三区 | 息与子中文字幕完整在线 | 国产精品毛片无码 | aaa毛片手机在线现看 | 日本午夜影院 | a人片| 夫承子液by免费阅读 | 双龙高h | 火影忍者小南裸羞羞漫画 | 国产精品理论片在线观看 | 成人在线日韩 | 好吊色青青青国产综合在线观看 | 7788理论片在线观看 | 色综合天天网 | 亚洲六月丁香六月婷婷色伊人 | 射玉足 | 精品视频一区在线观看 | 精品一产品大全 | 成人高清视频在线观看 | 二次元美女挤奶漫画 | 97爱干| 日本一片免费观看高清完整 | 四虎影视色费永久在线观看 | 99久久免费国产香蕉麻豆 | 成人免费一区二区三区在线观看 | 欧美亚洲综合另类 | futa百合文| 欧美艳星kagneyiynn高清 | 天堂网www中文天堂在线 | 欧美18一19性高清hd4k | 精品日产1区2卡三卡麻豆 | 免费观看小视频 | 日本无卡无吗中文免费 | 2021国产精品视频一区 |