首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用ListIterator编写插入排序

是一种在列表中进行排序的算法。插入排序的基本思想是将一个元素插入到已经排好序的部分列表中,直到所有元素都被插入到正确的位置。

下面是使用ListIterator编写插入排序的示例代码:

代码语言:txt
复制
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

public class InsertionSort {
    public static void insertionSort(List<Integer> list) {
        ListIterator<Integer> iterator = list.listIterator();
        if (!iterator.hasNext()) {
            return;
        }
        iterator.next(); // Skip the first element as it is already considered sorted

        while (iterator.hasNext()) {
            int current = iterator.next();
            ListIterator<Integer> sortedIterator = list.listIterator(iterator.previousIndex());

            while (sortedIterator.hasPrevious() && sortedIterator.previous() > current) {
                // Move the elements greater than the current element one position to the right
                sortedIterator.next();
                sortedIterator.set(sortedIterator.previous());
            }
            sortedIterator.next(); // Move the iterator back to the correct position
            sortedIterator.set(current); // Insert the current element at the correct position
        }
    }

    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(5);
        list.add(2);
        list.add(8);
        list.add(1);
        list.add(9);

        System.out.println("Before sorting: " + list);
        insertionSort(list);
        System.out.println("After sorting: " + list);
    }
}

这段代码使用ListIterator来遍历列表,并在遍历过程中进行插入排序。算法的核心部分是两个嵌套的while循环。外层循环遍历未排序的部分列表,内层循环将当前元素插入到已排序的部分列表中的正确位置。

插入排序的优势是简单易懂,对于小规模的列表排序效果较好。然而,对于大规模的列表,插入排序的性能可能不如其他高级排序算法。

插入排序适用于已经部分有序的列表,或者对于实时数据流的排序需求。

腾讯云提供了多个与云计算相关的产品,例如云服务器、云数据库、云存储等。您可以通过访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于这些产品的详细信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券