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实现排序算法——插入排序算法的主要内容,如果未能解决你的问题,请参考以下文章