八大排序--直接插入排序

92 阅读1分钟

八种排序的关系:

这里写图片描述

一、直接插入排序

基本思想:

  在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排
好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数
也是排好顺序的。如此反复循环,直到全部排好顺序。

从下面
这里写图片描述

代码实现:


public class InsertSort {
    public static void main(String[] args) {
        int a[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};
        for (int i = 0; i < a.length-1; i++) {
            //前面i个数据已经是有序的,需要将第(i+1)个元素插入前面的有序序列
            //相当于取扑克,插入收中已经排好的牌
            int j = i;
            int insertNum = a[j+1];//要插入的元素
            //将大于要插入的这个值的元素,集体向后移动
            while (j >= 0 && a[j] > insertNum) {
                a[j+1] = a[j];
                j--;
            }
            //由于上面一个循环,退出时j再次减一, 
            if ((j+1) != i) {
                a[j+1] = insertNum;
            }
        }
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i]+" ");

        }
    }
}