插入排序:

def insert_sort(lst):

for i in range(1,len(lst)):

x=lst[i] #x是一个临时变量,表示当前轮到的数字

j=i #临时变量 j ,为后续的排序提供方便

while j>0 and lst[j-1]>x: #当j 小于0,说明已经数字比较到了第一位,说明该为数字最小。 and 后面这个表示如果前一位数字大于该数字,则继续比较

lst[j]=lst[j-1] #当满足while循环条件时,将 lst[j-1]的值赋给lst[j],相当于将j-1位的数值后移

j-=1            #j的数值-1,继续将前一位的值,和x比较,如果比x大,执行上一行的操作,如果比x小,则说明x的值在当前位置正好满足排序规则。

lst[j]=x            #x已经到达正确的位置,将x原来的值赋值给lst[j]

print(lst)

insert_sort([5,3,7,8,2,12,33,52,14])

选择排序:

def insert_sort(lst):

for i in range(len(lst)-1):

k=i

for j in range(i,len(lst)):

if lst[j]

k=j

if i!=k:

lst[k],lst[i]=lst[i],lst[k]

print(lst)

insert_sort([5,3,7,8,2,12,33,52,14])

#实现方法:选出列表中最小的数,然后将 i 位置的数和当前最小的数互换。

#举例:第一次2和5换:[2,3,7,8,5,12,33,52,14]

第二次:不变,第三次,[2,3,5,8,7,12,33,52,14]

最后一步步得到最终结果

python插入排序_python 插入排序,选择排序相关推荐

  1. 对以下6种常用的内部排序算法进行比较:起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序。

    题目要求: (1)对以下6种常用的内部排序算法进行比较:起泡排序.直接插入排序.简单选择排序.快速排序.希尔排序.堆排序. (2)待排序表的表长不小于100:其中的数据要用伪随机数产生程序产生:至少要 ...

  2. python算法与数据结构-选择排序算法(33)

    阅读目录 一.选择排序的介绍 二.选择排序的原理 三.选择排序的图解 四.选择排序总结 五.选择排序的python代码实现 六.选择排序的C语言代码实现 七.选择排序的时间复杂度 八.选择排序的稳定性 ...

  3. Java【快速排序、插入排序、简单选择排序...】【八大排序-综合实验】

    目   录 1.快速排序 1.1.概念+举例 1.2.完整代码 2.插入排序 2.1.概念+举例 2.2.完整代码 3.简单选择排序 3.1.概念+举例 3.2.完整代码 4.3种排序-综合代码 4. ...

  4. c语言简单选择对字符串数组排序,简单了解C语言中直接插入排序与直接选择排序实现...

    直接插入排序基本思路: 1. 从a[0]开始,也就是从1个元素开始是有序的,a[1]~a[n-1]是无序的. 2. 从a[1]开始并入前面有序的数组,直到n-1. #include #define N ...

  5. python八大选择排序_Python实现选择排序

    选择排序: 选择排序(Selection sort)是一种简单直观的 排序算法 .它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最 ...

  6. python选择排序从大到小_Python实现选择排序

    一.选择排序简介 选择排序(Selection sort)是一种简单直观的排序算法.选择排序首先从待排序列表中找到最小(大)的元素,存放到元素列表的起始位置(与起始位置进行交换),作为已排序序列,第一 ...

  7. python选择排序_Python实现选择排序

    选择排序: 选择排序(Selection sort)是一种简单直观的 排序算法 .它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最 ...

  8. 算法分析-插入排序INSERT_SORT与选择排序SELECT_SORT【线性方法】

    1 var A = [5, 2, 4, 6, 1, 3]; 2 console.log("排序前-:") 3 A.forEach(function (element, index, ...

  9. python:直接插入和简单选择排序

    1. 直接插入排序 直接插入排序的基本思想:将一个记录插入到已排序好的有序表中,从而得到一个新记录数增加1的有序表.即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整 ...

最新文章

  1. Java中byte与16进制字符串的互相转换
  2. 使用IntentService在Service中创建耗时任务
  3. CentOS 7 + nginx-1.12 + php-7.2 + MySQL-5.7
  4. memcache在ThinkPHP中的使用1---PHP下安装memcache
  5. Java 面试题(3)—— JVM
  6. 1.4编程基础之逻辑表达式与条件分支 02 输出绝对值
  7. 一键搭建自己的网络加速器
  8. icp-ms质量分析器与磁质谱仪
  9. 珍重了,我亲爱的朋友们
  10. java爬虫模拟post请求_java爬虫之使用HttpClient模拟浏览器发送请求方法详解
  11. 一次计算机社团活动方案,社团活动方案设计方案5篇
  12. 【阿里云·云原生架构·白皮书】保姆级解读 一、 云原生架构定义
  13. ACT技能编辑器的制作经验
  14. DC-DC与LDO的区别及原理
  15. 电脑计算机提示msvcr100.dll丢失如何修复,msvcr100.dll丢失的解决方法
  16. hadoop安装与启动
  17. 微信分享网络图片到朋友圈和收藏不显示图片的问题
  18. 嘘,你抢的不是红包而是云
  19. JMeter 系列 —— BeanShell 取样器
  20. 解决U盘出现exe文件

热门文章

  1. 协作更进一步:微软隆重介绍Visual Studio动态分享功能
  2. php 随机指定位数,php生成一个可选位数的随机码
  3. centos6.6 源码安装mysql5.5_CentOS6.x下源码安装MySQL5.5
  4. [转]使用npm发布vue组件
  5. [转]SDK与API区别
  6. [转]在C#中像Python一样编写TensorFlow机器学习代码
  7. Win8消费者预览版下载地址 包含中文下载地址及中文手册
  8. 【GIS风暴】GeoJSON数据格式案例全解
  9. 【CC精品教程】任务三:CC刺像控点,提交空三,新建重建项目(三维格网、三维点云、DOM和DSM)
  10. MicroStation V8i简体中文版完全补丁安装教程(附安装包下载)