算法 - 插入排序

插入排序.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;
        }
    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容