国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2020-01-04 17:29:50
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Python使用插入排序算法的簡單分析與代碼示例,插入算法的平均時間復雜度為O(n^2),需要的朋友可以參考下
 

問題描述

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

插入算法

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

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

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

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

Python 實現:

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]]

    
另一個版本:

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桐柏县| 交城县| 凌源市| 云和县| 盐池县| 伊金霍洛旗| 龙州县| 徐水县| 湖南省| 无棣县| 察隅县| 库伦旗| 乐陵市| 高青县| 六枝特区| 邯郸县| 游戏| 育儿| 栖霞市| 邻水| 长泰县| 和平区| 岳西县| 庆阳市| 通河县| 西和县| 扎兰屯市| 龙海市| 钟祥市| 定陶县| 白沙| 泽库县| 牡丹江市| 沁阳市| 秀山| 绥芬河市| 犍为县| 伊吾县| 蒙自县| 哈巴河县| 如东县|