排序之插入排序(java)
来源:互联网 发布:linux创建多层文件夹 编辑:程序博客网 时间:2024/06/05 11:29
插入排序
1、什么是插入排序
假如有一个长度为n的数组a,我们假定当前要比较的位置下标为i,插入排序中我们要求a[0] - a[i-1]有序,所以当我们将a[i]插入到当前有序序列,从i-1开始比较若 a[i]>a[i-1] ,则不再比较,否则继续比较a[i-2],一直
比较到a[0]为止。
2、代码实现
package test01;public class Insertion {public static void sort(Comparable[] a){int N = a.length;for(int i=1;i<N;i++){for(int j=i;j>=0 && less(a[j],a[j-1]);j--){exch(a, j, j-1);}}}private static boolean less(Comparable v,Comparable w){return v.compareTo(w) <0;}private static void exch(Comparable[] a,int i,int j){Comparable t = a[i];a[i] =a[j];a[j] =t;}private static void show(Comparable[] a){for(int i=0;i<a.length;i++){System.out.print(a[i]+" ");}System.out.println();}public static boolean isSorted(Comparable[] a){//测试数组是否有序for(int i=1;i<a.length;i++){if(less(a[i],a[i-1])){return false;}}return true;}public static void main(String[] args) {}}
3、小结
插入排序对于实际应用中常见的某些类型的非随机数组有效,即若当前数组大致有序,我们使用插入排序算法,时间效率较高。
阅读全文
0 0
- Java排序之插入排序
- Java 排序之 插入排序
- Java排序之插入排序
- java排序之插入排序
- Java排序之插入排序
- Java 排序之 插入排序
- 排序之插入排序(java)
- java 排序之插入排序
- java之插入排序
- java之插入排序
- JAVA之插入排序
- java之插入排序
- java插入排序之直接插入排序
- Java排序之插入排序[二分、折半插入排序](4)
- Java排序之插入排序[直接插入排序](3)
- Java排序之选择排序、插入排序、希尔排序
- java实现排序算法之插入排序(直接插入排序,折半插入排序,希尔排序)
- java排序算法之(插入法排序)
- 螺旋矩阵(队列)
- Tp5关于include模版标签的使用和模版缓存问题
- bzoj 2187: fraction 类欧几里德算法
- 前端工程师能力评估
- 【JZOJ 5241】【GDOI2018模拟8.8】苹果和雪梨
- 排序之插入排序(java)
- 40个Java多线程问题总结
- a标签中"#"和"javascript:void(0)"的区别
- LeetCode 120 Triangle
- java通过配置文件jdbc.properties链接Oracle数据库工具类
- java swing 树型结构
- Java 3DES加密解密(Commons.Codec Base64)
- 52.多皇后问题第二弹
- Eclipse快捷键大全(转载)