欢迎访问宙启技术站
智能推送

Java中如何实现有序列表的插入排序函数

发布时间:2023-05-21 16:22:47

在Java中,有许多不同的方法可以实现有序列表的插入排序函数。下面是一种比较常见的实现方式:

/**

 * 对有序列表进行插入排序

 * @param list 要排序的有序列表

 */

public static void insertionSort(List<Integer> list) {

    for (int i = 1; i < list.size(); i++) {

        int current = list.get(i); // 保存当前待插入的元素

        int j = i - 1; // 从当前位置的前一个元素开始向前查找插入位置

        while (j >= 0 && list.get(j) > current) {

            list.set(j + 1, list.get(j)); // 向后移动元素

            j--;

        }

        list.set(j + 1, current); // 插入当前元素

    }

}

以上代码中,我们使用了一个for循环,从第二个元素开始对列表进行遍历。在遍历过程中,我们将当前的元素保存在变量current中,并在列表中向前查找当前元素应该插入的位置。为了找到插入位置,我们使用了一个while循环,从当前元素的前一个位置开始向前查找。如果找到的元素比当前元素大,那么就将该元素向后移动一位,为当前元素腾出插入位置。最后,我们将当前元素插入到正确的位置上。

这种实现方式有几个优点:首先,它比较容易理解,代码量也比较少;其次,它是原地排序算法,不需要额外的空间;最后,它的时间复杂度为O(n^2),对于小规模的列表来说效率不错。

当然,除了以上实现方式,还有许多其他实现方式,比如使用递归、使用二分查找等等,读者可以根据自己的需要选择合适的实现方式。