插入排序
来源:互联网 发布:面试常用的排序算法 编辑:程序博客网 时间:2024/06/14 11:16
插入排序,我理解的原理就是从一个数组中的第二位开始,也就是下标为1的元素存入到一个临时变量中,然后与之前的元素做对比,如果临时变量大,则不做交换,如果临时变量下,则将对比元素后移,将临时变量存入当前位置,继续对比直到前面没有元素可对比。
新手上路
代码如下:
工具类
public class ArrayIns { private long[] a; private int nElems; public ArrayIns(int max){ a = new long[max]; nElems = 0; } //插入数据 public void insert(long value){ a[nElems] = value; nElems++; } //循环遍历 public void display(){ for(int i=0;i<nElems;i++){ System.out.print(a[i]+" "); } System.out.println(" "); } //插入排序 public void insSort(){ int in,out;//in为内层循环,out为外层循环 for(out = 1;out<nElems;out++){ long temp = a[out]; in = out; /** * 当内层循环数大于零并且前一个数大于临时变量的时候 */ while(in>0 && a[in-1] > temp){ //将大的数值放入后面 a[in] = a[in-1]; in--; } //跳出循环后,in的值已经固定,将临时变量赋予这个位置的值 a[in]=temp; } }}
入口函数
public class insertSort { public static void main(String[] args){ int maxSize = 100; ArrayIns arr = new ArrayIns(maxSize); arr.insert(77); arr.insert(88); arr.insert(11); arr.insert(33); arr.insert(00); arr.insert(99); arr.insert(22); arr.insert(44); arr.insert(66); arr.insert(55); arr.display(); arr.insSort(); System.out.println("___________分割线__________________"); arr.display(); }}
77 88 11 33 0 99 22 44 66 55 ___________分割线__________________
0 11 22 33 44 55 66 77 88 99
阅读全文
0 0
- 插入排序-【插入排序】
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- dedecms自定义表单加验证码
- raw_spin_lock_irqsave
- Exception in thread "http-bio-8082-exec-5" Exception in thread "QuartzScheduler_BUSINESS-sfi-PC15027
- iOS 检测设备静音状态
- java 第三天笔记
- 插入排序
- 用蓝牙构建一个sniffer来监听通话
- go goroutine 简单实现生产者和消费者
- 如何修改"DEDECMS 提示信息!"方法!
- QGC
- JDK动态代理实现原理
- redis必杀命令:字符串(String)
- Hive、HBase、Impala的简单对比
- 简单实用的PHP分页代码