InsertionSort

 

Java

    private static void insertionSort(int[] array) {
        for (int i = 1; i < array.length; ++i) {
            int index = i - 1, mark = array[i];
            while (mark < array[index]) {
                array[index + 1] = array[index];
                index--;
                if (index == -1) {
                    break;
                }
            }
            array[index + 1] = mark;
        }
    }

 

    private static void insertionSort(int[] array) {
        int index, mark;
        for (int i = 1; i < array.length; i++) {
            index = i - 1;
            mark = array[i];
            while (index >= 0) {
                if (array[index] > mark) {
                    array[index + 1] = array[index];
                } else {
                    // array[index + 1] = mark;
                    // wrong, when mark is the minimum, array[index+1] = mark; is not executed
                    break;
                }
                index--;
            }
            array[index + 1] = mark;
        }
    }

 

    private static void insertionSort(int[] array) {
        int cursor, key;
        for (int i = 1; i < array.length; ++i) {
            key = array[i];
            for (cursor = i - 1; cursor >= 0; --cursor) {
                if (array[cursor] <= key) {
                    break;
                }
                array[cursor + 1] = array[cursor];
            }
            array[cursor + 1] = key;
        }
    }

 

posted @ 2023-11-19 10:45  ascertain  阅读(2)  评论(0编辑  收藏  举报