直接插入排序python实现
直接插入排序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实现相关推荐
- 插入排序 - python实现
插入排序 插入排序(英语:Insertion Sort)是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入.插入排序在实现上,在从 ...
- python 嵌入 php,Python与PHP实现插入排序实例
插入排序_Python与PHP的实现版(推荐) 插入排序Python实现 import random a=[random.randint(1,999) for x in range(0,36)] # ...
- Python天天美味(35) - 细品lambda
lambda函数也叫匿名函数,即,函数没有具体的名称.先来看一个最简单例子: def f(x): return x**2 print f(4) Python中使用lambda的话,写成这样 g ...
- Python天天美味(32) - python数据结构与算法之堆排序
1. 选择排序 选择排序原理是先选出最小的数,与第一个数交换,然后从第二个数开始再选择最小的数与第二个数交换,-- def selection_sort(data): for i in ran ...
- python 判断div 之间的内容是否为空_python实现数据结构与算法之双端队列实现
简介 双端队列(deque, double-ended queue),是一种具有队列和栈的性质的数据结构.双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行.双端队列可以在队列任意一端 ...
- Python天天美味(35) - 细品lambda(转)
lambda函数也叫匿名函数,即,函数没有具体的名称.先来看一个最简单例子: def f(x): return x**2 print f(4) Python中使用lambda的话,写成这样 g ...
- python常见算法(chatgpt算法实现)
以下是使用Python实现的几种常见的排序算法: ``` 以下是使用Python实现的几种常见的排序算法:1. 冒泡排序```python def bubble_sort(arr):n = len(a ...
- python学习之旅_第2天
学习目标: 三天掌握 python 入门知识 学习内容: 1. Python3 迭代器与生成器 2. Python3 函数 3. Python3 数据结构 4. Python3 模块 5. Pytho ...
- Linux终端运行fasterrcnn,对yolo与fasterrcnn anchors的理解
嵌入式&iOS:回调函数(C)与block(OC)传 参/函数 对比 C的回调函数: callBack.h 1).声明一个doSomeThingCount函数,参数为一个(无返回值,1 ...
最新文章
- redhat7防火墙关闭_RedHat Enterprise Linux 7关闭防火墙方法
- 从程序集/类库下面取文件
- Java基础05 实施接口
- Python学习:基本概念
- PyTorch:MNIST数据集手写数字识别
- TCP解决粘包问题(结构数据封包拆包)
- 360容器平台监控实践
- 案例演示Python二维列表与Java二维数组
- C/C++线程与多线程工作笔记0006---VC++中_T()的作用
- 影视.20190507
- 坑爹的InetAddress getLocalHost函数
- 远程控制软件也要有plan B备选方案
- KITTI数据集下载以及处理
- ceph rbd mysql_ceph rbd操作
- 计算机显示文档在哪打开,我的文档在哪?小编教你找到电脑Windows系统我的文档在哪...
- 宏定义是什么?为什么要进行宏定义?宏定义的格式
- ValueError: A 0.7-series setuptools cannot be installed with distribute.
- 虚拟网络的无损保证-zOVN
- 'net' 不是内部或外部命令,也不是可运行的程序 或批处理文件。'net' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
- Android Studio报错:E/EGL_emulation: tid 3197: eglSurfaceAttrib(1199): error 0x3009 (EGL_BAD_MATCH)