博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法——插入排序
阅读量:4685 次
发布时间:2019-06-09

本文共 1211 字,大约阅读时间需要 4 分钟。

   插入排序是最简单的排序算法之一,保证从位置0到p上的元素为已排序状态。

上图的p=1是指数据的下标,移动的位置是从位置p往左边移动

看例子: 

public void insetSort(){        int[] a = {34,8,64,51,32,21};        System.out.println(Arrays.toString(a));        int j;        for (int p = 1; p < a.length ; p++) {            int tmp = a[p];//记录p位置上的值            for (j = p; j > 0 && tmp < a[j-1] ; j --) {//循环并比较大于p位置上的值,然后与之调换位置                a[j] = a[j-1];            }            a[j] = tmp;        }        System.out.println(Arrays.toString(a));    }

以p=4趟来结合代码说明:

public void insetSort(){        int[] a = {8,34,51,64,32,21};//p=4趟之前的数据顺序        System.out.println(Arrays.toString(a));        int j;        for (int p = 1; p < a.length ; p++) {            int tmp = a[p];//从这里开始说明,这列的tmp等于32,            //拿32与前面排序好的数组进行比较,           //第一次比较与交换后的数组是:8,34,51,64,64,21          //第二次比较与交换后的数组是:8,34,51,51,64,21         //第三次比较与交换后的数组是:8,34,34,51,64,21        //第四次发现小于当前下标元素(这里的下标元素是第一个34)了就直接退出循环,然后把p值赋值给当前下标的元素,得出的数组是:8,32,34,51,64,21       //            for (j = p; j > 0 && tmp < a[j-1] ; j --) {                a[j] = a[j-1];            }            a[j] = tmp;        }        System.out.println(Arrays.toString(a));    }

 

转载于:https://www.cnblogs.com/cunkouzh/p/10414717.html

你可能感兴趣的文章
前端资源链接 ...
查看>>
yum install ntp 报错:Error: Package: ntp-4.2.6p5-25.el7.centos.2.x86_64 (base)
查看>>
leetcode-Single Number-136
查看>>
CF715C Digit Tree
查看>>
二分法练习1
查看>>
QT 制作串口调试小助手----(小白篇)
查看>>
前端MVC实践之hellorocket——by张舒彤
查看>>
OptimalSolution(2)--二叉树问题(3)Path路径问题
查看>>
IPC 之 Messenger 的使用
查看>>
macos 下usb键盘问题.
查看>>
SQL函数学习(十六):STUFF()函数
查看>>
Apache Hadoop 和Hadoop生态圈
查看>>
Ctrl+Enter 选中文本提交
查看>>
android WIFI
查看>>
常用的匹配正则表达式和实例
查看>>
小组成员及其git链接
查看>>
SQL case when else
查看>>
MVc Identity登陆锁定
查看>>
cdn连接失败是什么意思_关于CDN的原理、术语和应用场景那些事
查看>>
ultraedit26 运行的是试用模式_免费试用U盘数据恢复工具 – 轻松找回U盘丢失的各种数据!...
查看>>