插入算法
来源:互联网 发布:人工智能资料百度云 编辑:程序博客网 时间:2024/06/05 09:49
插入算法
主要思路:
1.将数组的前两个数进行大小排序
2.将第三个数与前两个数进行比较,将第三个数插入到合适的位置
3.循环
示例:
// 数组 【3,5,1,2,8,9】
如有这样一个数组,按照上面的思路,我们从第二个数开始,就是5,5要跟3比较,第二个位置就是5要插入的位置
【3,5,1,2,8,9】
再1,1跟5比较,1比5要小,所以,要将5的位置和1的位置的数值进行调换,也就是数值移位。
【3,1,5,2,8,9】
继续跟前一个比较,再次移位
【1,3,5,2,8,9】
此时的位置是我们要插入的位置
依次规律,得到排序结果为如下所示。
【1,2,3,5,8,9】
主要代码如下:
public void sort(int a[]){
int length=a.length; //数组长度 int j; //当前值的位置 对于初始而言,就是5所对应的位置 int i; //指向j前的位置 对于初始而言,就是3所对应的位置 int key; //当前要进行插入排序的值 对于初始而言,就是5 //从数组的第二个位置开始遍历插入,也就是说跟数组的第一个值做比较,如果比第一个的小就将第一个的值往后移 for(j=1;j<length;j++){ key=a[j]; //第一次是将5的值赋给key,而后一次类推 i=j-1; //第一次是3对应的位置 //a[i]比当前值大时,a[i]后移一位,空出i的位置,好让下一次循环的值后移 while(i>=0 && key < a[i]){// 第一次是 5比3大,不执行循环 a[i+1]=a[i]; //将a[i]值后移 i--; //i前移 }//跳出循环(找到要插入的中间位置或已遍历到0下标) a[i+1]=key; //将当前值插入,也就是3对应位置的后一个位置,也就是5的位置,最后的结果就是,将5这个位置重新指向了5,结果没什么影响而已 } }
阅读全文
1 0
- 插入算法
- 插入算法
- 插入算法
- 插入算法
- 插入算法
- 插入算法
- 插入算法
- 插入算法
- 看伪码写算法-插入算法
- 排序算法-插入算法
- 算法----插入排序算法
- 排序算法-插入算法
- 排序算法-插入算法
- [算法] 插入排序,直接插入
- 插入算法(直接插入,二分插入,希尔)
- C++插入算法及二分插入算法
- 排序算法---直接插入算法
- 算法导论-插入排序算法
- 循环
- java多线程小抄(记录)
- 【备忘】Java菜鸟到大牛学习路线培训教程
- PathFindFileName
- 很想论一把网络词汇
- 插入算法
- Android Studio插件整理
- android调用so库
- SpringBoot 整合mybatis+oracle
- C#和java的简单区别
- TCHAR字符串查找&反向查找字符串
- 卷积神经网络CNN总结
- 数据库 分组统计问题
- Elasticsearch5.4 Java编程注意事项