歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Python實現插入排序

Python實現插入排序

日期:2017/3/1 9:42:22   编辑:Linux編程

Python實現插入排序

一般來說,插入排序都采用in-place在數組上實現。具體算法描述如下:
1.從第一個元素開始,該元素可以認為已經被排序
2.取出下一個元素,在已經排序的元素序列中從後向前掃描
3.如果該元素(已排序)大於新元素,將該元素移到下一位置
4.重復步驟3,直到找到已排序的元素小於或者等於新元素的位置
5.將新元素插入到該位置後
6.重復步驟2~5

最優時間復雜度O(n)

最差時間復雜度O(n^2)

#! /usr/bin/env python
# -*- coding: utf-8 -*-

def insertion_sort(l):
length = len(l)
for i in range(1, length):
item = l.pop(i)
for j in range(i,0,-1):
if item >= l[j-1]:
l.insert(j, item)
break
else:
l.insert(0, item)

if __name__ == "__main__":
l1 = [3, 1, 2, 4, 9, 8, 6, 7, 5]
print l1
insertion_sort(l1)
print l1

《Python核心編程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm

《Python開發技術詳解》.( 周偉,宗傑).[高清PDF掃描版+隨書視頻+代碼] http://www.linuxidc.com/Linux/2013-11/92693.htm

Python腳本獲取Linux系統信息 http://www.linuxidc.com/Linux/2013-08/88531.htm

在Ubuntu下用Python搭建桌面算法交易研究環境 http://www.linuxidc.com/Linux/2013-11/92534.htm

Python 的詳細介紹:請點這裡
Python 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved