美文网首页
5.简单排序之插入排序

5.简单排序之插入排序

作者: 穹生变 | 来源:发表于2021-03-01 09:01 被阅读0次

原理:

把所有的元素分为两组,一组为排序过得,一组为未排序过得。
每轮取未遍历组中第一个元素a,然后从后往前遍历已排序组,将a和当前索引对应的值进行比较,直到找到一个元素小于等于a,然后将a插入这个元素之后,原先这个元素之后的元素都想后移动一位。

代码实现

package china.guo.calc.simplesort;

import java.util.Arrays;

//插入排序
public class Insert {

    //排序
    public static void sort(Comparable[] array) {
        for (int i =1;i<array.length; i++) {
            for (int j = i; j >0; j--) {
                if (greater(array[j],array[j-1])){
                    break;
                }else{
                    exchange(array,j,j-1);
                }
            }
        }

    }

    //比较c1和c2大小
    public static boolean greater(Comparable c1,Comparable c2){
        return c1.compareTo(c2)>0;
    }

    //交换索引i和索引j处的元素位置
    public static void exchange(Comparable[] array,int i,int j){
        Comparable temp;
        temp = array[i];
        array[i]=array[j];
        array[j]=temp;
    }

    public static void main(String[] args) {
        Integer[] array = new Integer[]{4,5,3,6,1,2};
        sort(array);
        System.out.println(Arrays.toString(array));
    }
}

相关文章

  • JavaScript-常见排序算法实现方法汇总

    常见比较排序1.冒泡排序2.选择排序:简单选择排序和堆排序3.插入排序:直接插入排序和希尔排序4.快速排序5.归并...

  • 5.简单排序之插入排序

    原理: 把所有的元素分为两组,一组为排序过得,一组为未排序过得。每轮取未遍历组中第一个元素a,然后从后往前遍历已排...

  • 简单理解iOS7大排序算法

    1.插入排序 2.希尔排序 3.简单选择排序 4.堆排序 5.冒泡排序 6.快速排序 7.归并排序

  • JS实现的常见算法

    1.冒泡排序 2.简单选择排序 3.直接插入排序 4.希尔排序 5.去重算法 6.快速排序

  • 排序算法----常见的排序算法

    1.冒泡排序 2.简单选择排序 3.直接插入排序 4.快速排序 快速排序 5.堆排序 堆排序 6.希尔排序 希尔排...

  • Java排序算法

    插入排序 直接插入排序 折半插入排序 交换排序 冒泡排序 快速排序 选择排序 简单选择排序 堆排序 其他排序 二路...

  • iOS排序基础算法

    排序类型: 排序要求: 1.冒泡排序 2.选择排序 3.插入排序 4.二分插入排序 5.快速排序 6.希尔排序 7...

  • 常用排序算法(Python实现), 持续更新中

    一、非线性时间比较类排序 交换排序冒泡排序快速排序 插入排序简单插入排序希尔排序 选择排序简单选择排序堆排序 归并...

  • Python排序方法

    1.冒泡排序 2.选择排序 3.插入排序 4.希尔排序 5.快速排序

  • 九种排序算法(重要!!)

    分类:(九种排序算法) 1、插入排序:直接插入排序、二分插入排序、希尔排序; 2、选择排序:简单选择排序、堆排序 ...

网友评论

      本文标题:5.简单排序之插入排序

      本文链接:https://www.haomeiwen.com/subject/bvoifltx.html