插入排序
来源:互联网 发布:软件外包公司分录 编辑:程序博客网 时间:2024/05/20 07:18
今天学习了下插入排序。不大会表达、、、见谅啊!
代码如下
void InsertSort(int a[], int len){int i,j;int key ;for(j = 1; j < len; j++){key = a[j];i = j - 1;while(a[i] > key){a[i + 1] = a[i];i = i - 1;}a[i + 1] = key;}}
插入排序的思想就是:利用一个key来记录待插入值,该值的位置用来给排好序的序列来移位。
j用来记录待插入的数的位置,而i记录已排好序的序列的最后一个(即j-1)
例如 7 6 5 2 3 8 9 此时设置j的位置为1,则i的位置为j-1 = 0
我们可以将j的位置挖空。
7 - 5 2 3 8 9
然后比较i=0,和key的大小 (7 > 5),则7向后移a[i+1] = a[i] ,
这样一直寻找就可以在已排序的序列中找到key的位置(即 i+1) a[i+1] =key
0 0
- 插入排序-【插入排序】
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- Zookeeper的主流应用场景实现思路
- Tomcat研究之组件结构
- require.js学习笔记(一)
- shuffle 过程解析
- JOAL学习笔记 第三课 多声源播放
- 插入排序
- ADN的实现
- 实验一VC编程工具的灵活使用
- opencv脱离动态库的静态链接方法 - staticlib
- 学习园地
- 使用map容器写并查集
- Java构造和解析Json数据的两种方法详解
- vmware下的桥接设置
- Spring之IOC