歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Python實現插入排序

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