28、外存算法

内容来自刘宇波老师算法与数据结构体系课

1、传统算法的局限性

image

2、外存模型

image
image
image

3、外存寻找最小值

image

4、外存二分搜索

image
image

5、外存排序基础

image
image

6、外存合并两个有序数组

image
image
image
image
image

7、为什么内存越大,计算机性能越好

image
image
image
image
image

8、外存排序的重要优化

image
image
image
image

9、外存合并 k 个有序数组

23 - 合并 K 个升序链表

public class MergeKLists {

    public ListNode mergeKLists(ListNode[] lists) {
        if (lists == null || lists.length == 0) return null;
        if (lists.length == 1) return lists[0];

        // 最小堆
        PriorityQueue<ListNode> pq = new PriorityQueue<>(Comparator.comparingInt(o -> o.val));
        for (ListNode head : lists) {
            if (head != null) pq.add(head);
        }

        ListNode dummyHead = new ListNode();
        ListNode prev = dummyHead;
        while (!pq.isEmpty()) {
            ListNode node = pq.remove();
            prev.next = node;
            prev = prev.next;
            if (node.next != null) pq.add(node.next);
        }

        return dummyHead.next;
    }
}

image
image
image

10、k 分数据是一种算法思想

image
image
image

posted @ 2023-04-21 14:42  lidongdongdong~  阅读(59)  评论(0编辑  收藏  举报