python实现排序算法——插入排序算法

Posted 令狐葱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python实现排序算法——插入排序算法相关的知识,希望对你有一定的参考价值。

 1 ‘‘‘
 2 插入排序算法
 3 原始数据data
 4 排序数据后数据SortedData,默认是从小打大排序
 5 
 6 1.从data第一个元素开始,该元素赋值给SortedData[0],可以认为SortedData已经被排序 
 7 
 8 2.取出data的一个元素data[i],
 9     (1)从左到右扫描SortedData,
10         如果data[i]小于SortedData的某个元素SD,那么将data[i]插入SD的位置,选取下一个元素
11     (1)如果data[i]大于SortedData最后一个元素,将data[1]插入到SortedData的末尾,选取下一个元素
12 
13 3.重复步骤2
14 ‘‘‘
15 
16 #/usr/bin/env python
17 #coding:utf-8
18 #__author__= “livermorium116”
19 
20 
21 import random 
22 import time
23 class InsertionSorted():
24     def __init__(self):
25         self.data=self.dataRand()
26         
27         self.SortedData=[self.data[0]]#默认获得第1个元素,
28         print(排序前:)
29         print(__________________)
30         self.SortedByInsertion()
31         
32     def SortedByInsertion(self):
33         TimeCount=time.time() ##程序计时
34         TimeCountCPU=time.clock()##CPU计时
35         
36         for D in self.data[1:]: ##从余下的元素选取
37             for SD in self.SortedData: ##选取已排序元素中的一个SD
38                     if D < SD: 
39                         tem=self.SortedData.index(SD)
40                         self.SortedData.insert(tem,D)
41                         print(self.SortedData)
42                         break
43                         选取下一元素
44             
45             if D >= self.SortedData[-1]: ##比较最后一个元素
46                 self.SortedData.append(D)
47                 print(self.SortedData)
48                 continue 
49              
50                 
51         TimeCountCPU=time.clock()-TimeCountCPU
52         TimeCount=time.time()-TimeCount
53         
54         print(排序后:\n)
55         print(self.SortedData)
56         print("总排序用时%4f\nCPU用时%4f\n"%(TimeCount,TimeCountCPU))
57     def dataRand(self):
58         temp=[]
59         for i in range(10):
60             temp.append(random.randint(1,100))
61         print(temp)
62         print("_____________")
63         return temp
64     
65         
66 if __name__ =="__main__":
67     
68     IS=InsertionSorted()
69     
70         

 

以上是关于python实现排序算法——插入排序算法的主要内容,如果未能解决你的问题,请参考以下文章

插入排序算法回顾(python实现)

Python实现八大排序算法

python实现时间复杂度平均为N^2的冒泡选择插入排序

python实现时间复杂度平均为N^2的冒泡选择插入排序

python实现时间复杂度平均为N^2的冒泡选择插入排序

python实现时间复杂度平均为N^2的冒泡选择插入排序