直接插入排序

2018-07-27 21:02 更新
  1. 基本思想: 在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序
  2. 代码实现(JAVA):

    /**
     * 打印数组内容
     * @param a
     */
    public static void saymsg(int[] src) {
        for (int i = 0; i < src.length; i++) {
            System.out.print(src[i]);
            System.out.print("  ");
        }
        System.out.println();
    }
    
    
    
    
    /**
     * 直接插入排序 
     */
    private static void insertSort(int[] src) {
        int temp = 0;
        for (int i = 1; i < src.length; i++) {
            int j = i - 1;
            temp = src[i];
            for (; j >= 0 && temp < src[j]; j--) {
                src[j + 1] = src[j];
            }
            src[j + 1] = temp;
            System.out.println("第"+i+"次排序:");
            saymsg(src);
        }
        saymsg(src);
    }
    
    
    
    
    
    
    
    
    public static void main(String[] args) {
        int[] src = { 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 };
        System.out.println("原始数组排序:");
        saymsg(src);
        insertSort(src);
    }

图片来自维基百科

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号