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

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

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

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 门房秦大爷在线阅读 | 午夜久| 精品99视频| 精品亚洲综合久久中文字幕 | 我要看逼 | 黑人巨大初黑人解禁作品 | 亚洲狠狠网站色噜噜 | 久久黄色精品视频 | 俺去啦最新地址 | 免费在线观看网址入口 | 摸咪网在线影院在线观看 | 亚洲国产剧情中文视频在线 | 免费我看视频在线观看 | 99精品视频在线观看免费播放 | 美女扒开两腿露出尿口的视频 | 午夜影院小视频 | 果冻传媒在线视频观看免费 | 91精品天美精东蜜桃传媒免费 | 亚洲小视频 | 精品一久久香蕉国产线看观 | 国产成人啪精品午夜在线播放 | 日本护士xxxx视频免费 | 精品久久久久久午夜 | 亚洲第一网色综合久久 | 高h文恩好大好爽 | 国产播放啪视频免费视频 | 国产真实伦对白在线播放 | 久久久久久88色偷偷 | 欧美女孩13一14v| 三体动漫在线观看免费完整版2022 | 美女隐私部位视频网站 | 欧美1级| 好吊操这里有精品 | 超级乱淫伦小说全集np | 99热这里只有精品国产免费 | 国产成人v爽在线免播放观看 | 爸爸干女儿小说 | 9999热视频| 国内体内she精视频免费 | 9自拍视频在线观看 | 91在线精品国产 |