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

首頁 > 編程 > Python > 正文

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

2019-11-25 16:48:46
字體:
供稿:網(wǎng)友

問題描述

將一組隨機(jī)排列的數(shù)字重新按照從小到大的順序排列。

插入算法

每次從數(shù)組中取一個(gè)數(shù)字,與現(xiàn)有數(shù)字比較并插入適當(dāng)位置。

如此重復(fù),每次均可以保持現(xiàn)有數(shù)字按照順序排列,直到數(shù)字取完,即排序成功。

這很像打牌時(shí)的抓牌情況,

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

Python 實(shí)現(xiàn):

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

   
另一個(gè)版本:

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 邯郸县| 治多县| 上高县| 天台县| 神木县| 灵石县| 永泰县| 千阳县| 临汾市| 长治市| 沅陵县| 新竹县| 怀仁县| 洛浦县| 静宁县| 开远市| 巴塘县| 德庆县| 武城县| 平遥县| 冕宁县| 河间市| 临高县| 彰武县| 宣恩县| 温宿县| 鄂伦春自治旗| 丰台区| 湖北省| 临邑县| 景东| 沁源县| 曲阳县| 商河县| 始兴县| 奉新县| 广平县| 峡江县| 若尔盖县| 仙居县| 阳谷县|