算法 - 插入排序

2017-11-12  本文已影响0人  不再饿肚子给人送饭
插入排序.png
从第二个元素开始,与之前的每一个元素比较,进行大小判定,如果比之前的某一个元素小,则交换位置(倒序排序)

    /**
     * 插入排序
     *
     * @param array 待排序的数组
     * @param rules 排序规则 desc | asc
     */
    public static void insertSort(int[] array, String rules) {
        if (!(rules.length() == 0)) {
            if (!(array.length == 1 || array.length == 0)) {
                if ("asc".equals(rules)) {
                    //总遍历趟数为数组长度-1次
                    for (int i = 1; i <= array.length - 1; i++) {
                        //使当前元素与前一个元素两两比较,直到下标为0的那个元素
                        for (int j = i; j > 0; j--) {
                            if (array[j] < array[j - 1]) {
                                int temp = array[j];
                                array[j] = array[j - 1];
                                array[j - 1] = temp;
                            }
                        }
                    }
                }
                if ("desc".equals(rules)) {
                    for (int i = 1; i <= array.length - 1; i++) {
                        for (int j = i; j > 0; j--) {
                            if (array[j] > array[j - 1]) {
                                int temp = array[j];
                                array[j] = array[j - 1];
                                array[j - 1] = temp;
                            }
                        }
                    }
                } else {
                    return;
                }
            } else {
                return;
            }
        } else {
            return;
        }
    }

上一篇 下一篇

猜你喜欢

热点阅读