Python实现的直接插入排序算法示例
作者:Vam.Dora.L 发布时间:2022-09-23 05:22:28
标签:Python,排序,算法
本文实例讲述了Python实现的直接插入排序算法。分享给大家供大家参考,具体如下:
# -*- coding:utf-8 -*-
'''直接插入的python实现
时间复杂度O(n**2) 空间复杂度O(1) 稳定
思想:先将前两个元素排序,第三个元素插入前面已排好序列,
后面的元素依次插入之前已经排好序的序列
'''
author = 'Leo Howell'
L = [89,67,56,45,34,23,1]
def direct_insert_sort(numbers):
for i in range(1,len(numbers)):
#temp变量指向尚未排好序元素(从第二个开始)
temp = numbers[i]
#j指向前一个元素的下标
j = i-1
#temp与前一个元素比较,若temp较小则前一元素后移,j自减,继续比较
while j>=0 and temp<numbers[j]:
numbers[j+1]=numbers[j]
j = j-1
#temp所指向元素的最终位置
numbers[j+1] = temp
if __name__=='__main__':
direct_insert_sort(L)
print L
运行结果:
PS:这里再为大家推荐一款关于排序的演示工具供大家参考:
在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:
http://tools.jb51.net/aideddesign/paixu_ys
希望本文所述对大家Python程序设计有所帮助。
来源:http://www.cnblogs.com/hoog/p/4205661.html


猜你喜欢
- 需求每天请求一封邮件,并读取该邮件这个其实可以使用linux 自带了crontab实现,但是毕竟是django 开发。想着不知道有没有方法可
- 但凡介绍数据库连接池的文章,都会说“数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理
- 我的代码结构如下所示不能执行,会出现报错<RadioGroup v-model="animal"> <
- 参考网上的例子,实现了简单的matplotlib pyqt5绘图 相关知识点: (1)pyqt5中添加控件要在布局中添
- 一、数字类型python除了支持原有的int和float类型,新增了支持Decimal或者Fraction。python还内置支持复数,后缀
- 在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改:s = Student()s.sco
- 一、场景浏览器访问淘宝,再访问天猫,继续访问1688......此时,浏览器中的cookie是什么状态?显然,包含上述3个网站的所有cook
- Python装饰器语法糖代码示例####装饰器的固定格式##普通版本def timer(func): def inner(*ar
- 一、KNN概述简单来说,K-近邻算法采用测量不同特征值之间的距离方法进行分类优点:精度高、对异常值不敏感、无数据输入假定缺点:计算复杂度高、
- js获取日期函数//获取当前时间日期function CurentTime(){ var now = new Date(); &
- 基本功能:能够实现学生成绩相关信息的输入、输出、查找、删除、修改等功能;(使用数据库对数据进行存取)输入并存储学生的信息:通过输入学生的学号
- 对于字典的操作,本篇介绍的是在其中添加值的方法,下面带来详细的介绍。1、通过键=值的方式进行添加。如果键存在,则会将旧的值进行覆盖,如果不存
- 这篇文章主要介绍了Python3的socket使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- 首先还是应该科普下函数参数传递机制,传值和传引用是什么意思?函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进
- <%Class Cls_TemplateDim RegDim PageDim CIDDim SIDDim RuleDim Conten
- 一、语言结构和注意事项package main // 声明 main 包,表明当前是一个可执行程序import "fm
- 它支持主流的浏览器,包含:Chrome、Firefox、Safari、Microsoft Edge 等,同时支持以无头模式、有头模式运行pl
- 中文如果用表单提交的话,不会出现乱码,而用ajax提交就会出现乱码,这是什么原因呢?我的理解是,我在写源码的时候,一般用记事本写,保存的时候
- 自己写的小工具,可以直接获取csdn文章并转换为markdown格式效果图核心代码from PySide2.QtWidgets import
- Js代码:/*** 验证码*/function yzm(){var codeChars = new Array(0, 1, 2, 3, 4,