国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仁怀市| 平原县| 巨鹿县| 绥江县| 成安县| 大城县| 乐都县| 兴隆县| 精河县| 莱州市| 渝北区| 阿鲁科尔沁旗| 遵义市| 全南县| 绥芬河市| 原阳县| 阳江市| 云霄县| 嘉兴市| 大理市| 兴和县| 尤溪县| 金堂县| 呼和浩特市| 汪清县| 化州市| 勃利县| 梅州市| 建德市| 丰镇市| 香河县| 新营市| 华坪县| 德安县| 霍林郭勒市| 焉耆| 贵定县| 榕江县| 和静县| 永春县| 虎林市|