Python排序搜索基本算法之插入排序实例分析
作者:littlethunder 发布时间:2023-12-28 14:20:25
标签:Python,算法,插入排序
本文实例讲述了Python排序搜索基本算法之插入排序。分享给大家供大家参考,具体如下:
插入排序生活中非常常见,打扑克的时候人的本能就在用插入排序:把抽到的一张插入到手上牌的正确位置上。有两种插入排序方法,一种基于比较,另一种基于交换。代码如下:
1.基于比较的插入排序:
# coding:utf-8
def insertionSort(seq):
length=len(seq)
for i in range(1,length):
tmp=seq[i]
for j in range(i,0,-1):
if seq[j-1]>tmp:
seq[j]=seq[j-1]
else:
j+=1
break
seq[j-1]=tmp
if __name__=='__main__':
print("脚本之家测试结果:")
seq=[8,6,4,9,7,3,2,-4,0,-100,99]
insertionSort(seq)
print(seq)
运行结果:
2.基于交换的插入排序:
# coding:utf-8
def insertionSort2(seq):
length=len(seq)
for i in range(1,length):
for j in range(i,0,-1):
if seq[j]<seq[j-1]:
seq[j],seq[j-1]=seq[j-1],seq[j]
else:
break
if __name__=='__main__':
print("脚本之家测试结果:")
seq=[3,5,9,8,4,2,1,0,-6,12,-8]
insertionSort2(seq)
print(seq)
运行结果:
PS:这里再为大家推荐一款关于排序的演示工具供大家参考:
在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:
http://tools.jb51.net/aideddesign/paixu_ys
希望本文所述对大家Python程序设计有所帮助。
来源:http://blog.csdn.net/littlethunder/article/details/9399957


猜你喜欢
- 使用命令行搭建单页面应用我们来看一下最后完成的效果:大纲1. 下载 node, git, npm2. 使用命令行安装一个项目一、 下载工具n
- 有时候在无法联网的情况下需要搭建环境,且必须使用之前的环境,因为你的代码需要在同样的环境下运行。这样方便开发方法一:1.下载指定的包到指定文
- pandas函数中pandas.DataFrame.from_dict 直接从字典构建DataFrame 。参数解析DataFrame fr
- 其他语言中,比如C#,我们通常遍历数组是的方法是:for (int i = 0; i < list.Length;
- 一、安装python基础环境:centos7.6安装:下载python:https://www.python.org/ftp/python/
- 本文实例为大家分享了Vue实现聊天界面展示的具体代码,供大家参考,具体内容如下1.功能需求根据索引选择跟不同的人进行聊天2.代码展示mock
- 1. 什么是数据不平衡所谓的数据不平衡(imbalanced data)是指数据集中各个类别的数量分布不均衡;不平衡数据在现实任务中十分的常
- 一个转换程序,简单的把DNA序列中的A转变成T,第一种情况没有使用私有变量。#!/bin/perl#下面是一段DNA序列 $DN
- 在自动化中, Selenium 自动化测试中有一个名字经常被提及 PageObject( 思想与面向对象的特征相 同 ) ,通常 PO 模型
- 1、Mycat 应用场景Mycat 发展到现在,适用的场景已经很丰富,而且不断有新用户给出新的创新性的方案,以下是几个典型的应用场景:1.
- Pandas如何将带有字符串元素的列拆分为多个列。使用以下字符串的方法。str.split():用定界符分割str.extract():按正
- 有时候我们需要查看mysql的版本信息,那么就可以参考下面的方法1、使用命令行模式进入mysql会看到最开始的提示符在命令行登录mysql,
- 一、背景本文章主要是分享如何使用Python从MySQL数据库中面抽取试题,生成的试卷每一份都不一样。二、准备工作1.安装Python3下载
- 1 新建类库MyTestDLL2 右击项目“MyTestDLL”-》属性-》生成-》勾选“为COM互操作注册”3 打开 AssemblyIn
- 存储过程简介----------------------------------------------------------------
- 在类中每次实例化一个对象都会生产一个字典来保存一个对象的所有的实例属性,这样非常的有用处,可以使我们任意的去设置新的属性。每次实例化一个对象
- 在读取中文的情况下,通常会遇到一些编码的问题,但是首先需要了解目前的编码方式是什么,然后再用decode或者encode去编码和解码,下面是
- MySQL之前有一个查询缓存Query Cache,从8.0开始,不再使用这个查询缓存,那么放弃它的原因是什么呢?在这一篇里将为您介绍。My
- 可以把本功能写成一个函数,函数的处理过程描述如下:首先调用adodb.connection对象中的openSchema函数,这样会得到一个R
- 学习前言神经网络的应用还有许多,目标检测就是其中之一,目标检测中有一个很重要的概念便是IOU什么是IOUIOU是一种评价目标检测器的一种指标