直接插入排序

来源:互联网 发布:windows活动目录管理 编辑:程序博客网 时间:2024/04/28 03:59
/** * 直接插入排序:从第二个数开始,依次把每个数作为目标操作数,与前面的数比较, 小于的时候把整体向后移一个单位,插入到合适的位置,跳出循环,按从小到大排序 * */public class StraightInsertionSort {    public static void main(String[] args) {        insertSort();    }    public static void insertSort() {        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 };        int temp = 0;        int j = 0;        for (int i = 1; i < a.length; i++) {            // 第一个for循环选择目标数值            temp = a[i];            for (j = i; j > 0 && a[j - 1] > temp; j--)   // 将大于temp的值整体后移一个单位,最终最小的数在最前面                a[j] = a[j - 1];            a[j] = temp; // 执行这句时 j 已经减1了        }        for (int k = 0; k < a.length; k++)            System.out.print(a[k] + ",");        // for (int i = 1; i < a.length; i++) {        //        // int j = i - 1;        // temp = a[i];// temp是目标操作数        //        // for (; j >= 0 && temp < a[j]; j--) {        // a[j + 1] = a[j]; // 将大于temp的值整体后移一个单位,最终最小的数在最前面        // }        // a[j + 1] = temp;// 第一个循环,由于执行了j--,此时的j=-1;        //        // for (int k = 0; k < a.length; k++)        // System.out.print(a[k] + ",");        //        // }    }}
0 0
原创粉丝点击