直接插入排序python实现

算法思想

直接插入排序的算法思想在于:每一步将一个待排序的数字,插入到前面已经排好序的有序序列中去;重复上述插入数字操作,直到插完所有元素为止,此时序列已经全部排列完毕。
将直接插入排序进行推广,可以得到希尔排序,它相比起直接插入排序的好处在于在每一轮排序的时候设置间隔gap,利用gap分成若干个子序列,在每个字序列中使用直接插入排序;这个间隔gap逐渐减小,直到这个gap=1的时候完成排序。相比之下,显然后者的排序效率更高。

python实现

a = [-852,75,95,2,-233,56,12,-49,91,-86]
b = len(a)
for i in range(1,b):temp=a[i]j=i-1while j >= 0 and a[j] < temp:a[j+1],a[j]=a[j],a[j+1]j-=1temp=a[j+1]
print(a)

直接插入排序python实现相关推荐

  1. 插入排序 - python实现

    插入排序 插入排序(英语:Insertion Sort)是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入.插入排序在实现上,在从 ...

  2. python 嵌入 php,Python与PHP实现插入排序实例

    插入排序_Python与PHP的实现版(推荐) 插入排序Python实现 import random a=[random.randint(1,999) for x in range(0,36)] # ...

  3. Python天天美味(35) - 细品lambda

    lambda函数也叫匿名函数,即,函数没有具体的名称.先来看一个最简单例子: def f(x):     return x**2 print f(4) Python中使用lambda的话,写成这样 g ...

  4. Python天天美味(32) - python数据结构与算法之堆排序

    1. 选择排序 选择排序原理是先选出最小的数,与第一个数交换,然后从第二个数开始再选择最小的数与第二个数交换,-- def selection_sort(data):     for i in ran ...

  5. python 判断div 之间的内容是否为空_python实现数据结构与算法之双端队列实现

    简介 双端队列(deque, double-ended queue),是一种具有队列和栈的性质的数据结构.双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行.双端队列可以在队列任意一端 ...

  6. Python天天美味(35) - 细品lambda(转)

    lambda函数也叫匿名函数,即,函数没有具体的名称.先来看一个最简单例子: def f(x):     return x**2 print f(4) Python中使用lambda的话,写成这样 g ...

  7. python常见算法(chatgpt算法实现)

    以下是使用Python实现的几种常见的排序算法: ``` 以下是使用Python实现的几种常见的排序算法:1. 冒泡排序```python def bubble_sort(arr):n = len(a ...

  8. python学习之旅_第2天

    学习目标: 三天掌握 python 入门知识 学习内容: 1. Python3 迭代器与生成器 2. Python3 函数 3. Python3 数据结构 4. Python3 模块 5. Pytho ...

  9. Linux终端运行fasterrcnn,对yolo与fasterrcnn anchors的理解

    嵌入式&amp;iOS:回调函数(C)与block(OC)传 参/函数 对比 C的回调函数: callBack.h 1).声明一个doSomeThingCount函数,参数为一个(无返回值,1 ...

最新文章

  1. redhat7防火墙关闭_RedHat Enterprise Linux 7关闭防火墙方法
  2. 从程序集/类库下面取文件
  3. Java基础05 实施接口
  4. Python学习:基本概念
  5. PyTorch:MNIST数据集手写数字识别
  6. TCP解决粘包问题(结构数据封包拆包)
  7. 360容器平台监控实践
  8. 案例演示Python二维列表与Java二维数组
  9. C/C++线程与多线程工作笔记0006---VC++中_T()的作用
  10. 影视.20190507
  11. 坑爹的InetAddress getLocalHost函数
  12. 远程控制软件也要有plan B备选方案
  13. KITTI数据集下载以及处理
  14. ceph rbd mysql_ceph rbd操作
  15. 计算机显示文档在哪打开,我的文档在哪?小编教你找到电脑Windows系统我的文档在哪...
  16. 宏定义是什么?为什么要进行宏定义?宏定义的格式
  17. ValueError: A 0.7-series setuptools cannot be installed with distribute.
  18. 虚拟网络的无损保证-zOVN
  19. 'net' 不是内部或外部命令,也不是可运行的程序 或批处理文件。'net' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  20. Android Studio报错:E/EGL_emulation: tid 3197: eglSurfaceAttrib(1199): error 0x3009 (EGL_BAD_MATCH)

热门文章

  1. 直男对于产品经理的思考
  2. MacBook开机自动连接iPad好评
  3. Java中ListE对象赋值问题(引用传递和值传递)
  4. javascript 迁移 typescript 实践
  5. Java开源项目整理
  6. voxel 与 pixel
  7. HDU 2955 Robberies
  8. Bitmap 多语言实现及应用
  9. hdu 4506(快速幂+找规律)
  10. hdu 3579(中国剩余定理非互质)