python实现排序算法(一)——插入排序算法
'''
插入排序算法
原始数据data
排序数据后数据SortedData,默认是从小打大排序 1.从data第一个元素开始,该元素赋值给SortedData[0],可以认为SortedData已经被排序 2.取出data的一个元素data[i],
(1)从左到右扫描SortedData,
如果data[i]小于SortedData的某个元素SD,那么将data[i]插入SD的位置,选取下一个元素
(1)如果data[i]大于SortedData最后一个元素,将data[1]插入到SortedData的末尾,选取下一个元素 3.重复步骤2
''' #/usr/bin/env python
#coding:utf-8
#__author__= “livermorium116” import random
import time
class InsertionSorted():
def __init__(self):
self.data=self.dataRand() self.SortedData=[self.data[0]]#默认获得第1个元素,
print('排序前:')
print('__________________')
self.SortedByInsertion() def SortedByInsertion(self):
TimeCount=time.time() ##程序计时
TimeCountCPU=time.clock()##CPU计时 for D in self.data[1:]: ##从余下的元素选取
for SD in self.SortedData: ##选取已排序元素中的一个SD
if D < SD:
tem=self.SortedData.index(SD)
self.SortedData.insert(tem,D)
print(self.SortedData)
break
选取下一元素 if D >= self.SortedData[-1]: ##比较最后一个元素
self.SortedData.append(D)
print(self.SortedData)
continue TimeCountCPU=time.clock()-TimeCountCPU
TimeCount=time.time()-TimeCount print('排序后:\n')
print(self.SortedData)
print("总排序用时%4f\nCPU用时%4f\n"%(TimeCount,TimeCountCPU))
def dataRand(self):
temp=[]
for i in range(10):
temp.append(random.randint(1,100))
print(temp)
print("_____________")
return temp if __name__ =="__main__": IS=InsertionSorted()
python实现排序算法(一)——插入排序算法的更多相关文章
- java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排序算法的描述
算法是在有限步骤内求解某一问题所使用的一组定义明确的规则.通俗点说,就是计算机解题的过程.在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法.前者是推理实现的算法,后者是操作实现的算法. ...
- 【排序】表插入排序算法(C语言版)
排序耗时的操作主要分为两种:查找比较.记录移位. 1.表插入排序 在查找比较基础上,尽量减少记录移位步数,可以令排序操作耗时降低,表插入排序正是为减少移位次数而出现的. 在数据结构上,数据是存储在静态 ...
- python实现排序算法四:BFPTR算法
所谓的BFPTR算法就是从n个数中寻找最小的K个数,主要思想可以参考注释,写得不是很好,特别是寻找中位数的中位数的时候,欢迎指正: 采用任意排序算法,将分组后的数据进行排序: __author__ = ...
- 用 Java 实现一个插入排序算法
有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法:插入排序法.插入排序的基本操作就是将一个数据插入到已经排好序的有序 ...
- 三种排序算法python源码——冒泡排序、插入排序、选择排序
最近在学习python,用python实现几个简单的排序算法,一方面巩固一下数据结构的知识,另一方面加深一下python的简单语法. 冒泡排序算法的思路是对任意两个相邻的数据进行比较,每次将最小和最大 ...
- python实现排序算法 时间复杂度、稳定性分析 冒泡排序、选择排序、插入排序、希尔排序
说到排序算法,就不得不提时间复杂度和稳定性! 其实一直对稳定性不是很理解,今天研究python实现排序算法的时候突然有了新的体会,一定要记录下来 稳定性: 稳定性指的是 当排序碰到两个相等数的时候,他 ...
- 《算法4》2.1 - 插入排序算法(Insertion Sort), Python实现
排序算法列表电梯: 选择排序算法:详见 Selection Sort 插入排序算法(Insertion Sort):非常适用于小数组和部分排序好的数组,是应用比较多的算法.详见本文 插入排序算法的语言 ...
- Python 实现排序算法
排序算法 下面算法均是使用Python实现: 插入排序 原理:循环一次就移动一次元素到数组中正确的位置,通常使用在长度较小的数组的情况以及作为其它复杂排序算法的一部分,比如mergesort或quic ...
- python常见排序算法解析
python——常见排序算法解析 算法是程序员的灵魂. 下面的博文是我整理的感觉还不错的算法实现 原理的理解是最重要的,我会常回来看看,并坚持每天刷leetcode 本篇主要实现九(八)大排序算法 ...
随机推荐
- 使用InternalsVisibleToAttribute给assembly添加“友元assembly”特性遭遇"强签名"
一.如何让Intenal成员暴露给另一个程序集 我们知道Modifier为Internal的类型成员仅限于当前程序集能够访问,但是在某些情况下,我们希望将它们暴露给另一个程序集.比较典型的应用场景包括 ...
- java_main
Java中用户向系统传递参数的三种基本方式 main方法 在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的 ...
- removing-guest-session-at-login-in-ubuntu-14-04
http://askubuntu.com/questions/451526/removing-guest-session-at-login-in-ubuntu-14-04
- 定时任务的N种解决方案
1, java 有个延时任务接口 DelayQueue 实现这个接口可以做到延时队列 缺点:耗费资源,不持久( java程序重启后丢失 ), 2. 基于spring 定时任务. 缺点:定时执行,不能 ...
- java 迭代
迭代器的作用是提供一种方法对一个容器对象中的各个元素进行访问,而又不暴露该对象容器的内部细节. java中的很多容器都实现了Iterable接口,容器中的元素都是可以遍历的. 如下例,list容器中存 ...
- JMeter ----与WebDriver安装与测试
JMeter ----与WebDriver安装与测试 主要内容 JMeter安装 WebDriver安装 一个简单的JMeter+WebDriver示例 环境与参考 jvm版本: 1.8.0_65 j ...
- SpringBoot进阶之web进阶
1.表单验证: 实体类添加: @Min(value = 18 ,message = "未成年少女禁止入内!")最小值限制为18,如果小于18则返回message中的信息 注入校验, ...
- ecstore-安装提示flock,即使绕过检测,安装成功后还是提示t function 解决办法
安装时先绕过去 安装好后,修改config.php里的TMP_DIR,指向网站目录下的data目录(用绝对路径) 分析:应该是php的运行用户没有对tmp目录的写权限.中电云集的管理工具就出现过
- php结合phantomjs实现网页截屏、抓取js渲染的页面
首先PhantomJS快速入门 PhantomJS是一个基于 WebKit 的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, ...
- 关于信号的延迟---verilog
关于信号的延迟---verilog `timescale 1ns / 1ps ///////////////////////////////////////////////////////////// ...