美文网首页
Dijkstra's 算法

Dijkstra's 算法

作者: Wilbur_ | 来源:发表于2020-10-14 13:04 被阅读0次

Dijkstra's algorithm, which lets you answer "What's the shortest path to X?" for weighted graphs.


image.png

Dijkstra's 就是在weighted graph 中选出最小值路径

今天完成了每日一题,发现mergesort里面基本的构成就是拆分和merge,这两个你掌握了基本就可以熟练使用了。下面是今天练习的代码:

    public ListNode sortList(ListNode head) {
        if (head == null || head.next == null) {
            return head;
        }
        ListNode mid = findMid(head);
        ListNode left = sortList(head);
        ListNode right = sortList(mid);
        return merge(left, right);
    }
    private ListNode findMid(ListNode head) {
        ListNode slow = null, fast = head;
        while (fast != null && fast.next != null) {
            slow = (slow == null) ? head : slow.next;
            fast = fast.next.next;
        }
        ListNode res = slow.next;
        //cut off (split the listnode)
        slow.next = null;
        return res;
    }
    private ListNode merge(ListNode l1, ListNode l2) {
        ListNode prehead = new ListNode();
        ListNode prev = prehead;
        while (l1 != null && l2 != null) {
            if (l1.val <= l2.val) {
                prev.next = l1;
                l1 = l1.next;
            } else {
                prev.next = l2;
                l2 = l2.next;
            }
            prev = prev.next;
        }
        prev.next = (l1 == null) ? l2 : l1;
        return prehead.next;
    }

相关文章

  • Dijkstra's 算法

    Dijkstra's algorithm, which lets you answer "What's the s...

  • 图的最短路径

    Dijkstra算法&Floyd算法 一、Dijkstra算法 Dijkstra算法思想: 只计算v0出发到其他顶...

  • 2018-05-07

    今天学习狄克斯特拉算法,为了尊敬发明人,必须用他的名字dijkstra's algorithm ,dijkstra...

  • 深入解析Dijkstra's Algorithm ——

    什么是Dijkstra算法? Dijkstra算法是用来寻找最短路径最著名的算法之一。具体来说,Dijkstra算...

  • 银行家算法

    Dijkstra(1965)提出了一种能够避免死锁的调度算法,称为银行家算法(banker's algorithm...

  • 2018-07-22

    最短路径算法之Dijkstra算法 基本思想 通过Dijstra计算图G中的最短路径时,需要指定起点s(即从顶点s...

  • 代码小工蚁的#《算法图解》#学习笔记-C7狄克斯特拉算法

    代码小工蚁的#《算法图解》#学习笔记-C7狄克斯特拉算法C7 狄克斯特拉算法Dijkstra’s algorith...

  • Dijkstra 算法

    Dijkstra 算法 前言 为了达到任意两结点的最短路径,我们有几种算法可以实现:Dijkstra 算法、Flo...

  • 寻找最短路径

    这方面的经典算法,有Dijkstra算法和Floyd算法。 下面简单说一下基于Dijkstra算法略作小改动的一个...

  • 7.8图的应用:最短路径问题

    最短路径问题:Dijkstra算法 ❖解决带权最短路径问题的经典算法是以发明者命名的“Dijkstra算法”❖这是...

网友评论

      本文标题:Dijkstra's 算法

      本文链接:https://www.haomeiwen.com/subject/ujnmpktx.html