java数据结构排序之直接插入排序

插入排序

算法思想

插入排序的基本思想是:把n个待排序的元素看出一个有序表和一个无序表,开始是有序表只包含一个元素,无序表中包含n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。

在这里插入图片描述

/**
 * Created by 胡歌的小迷弟 on 2019/9/25 16:12
 */
public class InsertSort {

    public static void main(String[] args) {
        int a[]={3,9,-1,10,-2};
        insertSort(a);
        for(int i=0;i<a.length;i++){
            System.out.println(a[i]);
        }

    }

    public static void insertSort(int[] arr) {
        int insertVal = 0;
        int insertIndex = 0;
        //使用for循环来把代码简化

        for(int i=1;i<arr.length;i++){
            insertVal=arr[i];
            insertIndex=i-1;
            while(insertIndex>=0&&insertVal<arr[insertIndex]){
                arr[insertIndex+1]=arr[insertIndex];
                insertIndex--;
            }

            if(insertIndex!=i+1){
                arr[insertIndex+1]=insertVal;
            }
            //System.out.println("第"+i+"轮插入");
            //System.out.println(Arrays.toString(arr));
        }
    }
}


发布了40 篇原创文章 · 获赞 6 · 访问量 1451

猜你喜欢

转载自blog.csdn.net/qq_26737667/article/details/102873866