• 链表插入排序


    很简单,找到第一个逆序对,插入,注意头结点情况不同。然后如此反复即可。

    注意Java中对象按引用传递,引用本身是按值传递的。

    无附加头

    public ListNode insertionSortList(ListNode head) {
            if(head == null || head.next == null)
            {
                return head;
            }
            
            ListNode currNode = head;
            while(currNode.next != null)
            {
                if(currNode.val <= currNode.next.val)
                {
                    currNode = currNode.next;
                }else{
                    ListNode p = currNode.next;
                    currNode.next = currNode.next.next;
                    if(p.val < head.val)
                    {
                        p.next = head;
                        head = p;
                    }else{
                        ListNode tmp = head;
                        while(p.val >= tmp.next.val)
                        {
                            tmp = tmp.next;
                        }
                        p.next = tmp.next;
                        tmp.next = p;
                    }
                }
            }
            return head;
        }

    有附加头:

        public ListNode insertionSortList(ListNode head) {
             if(head == null || head.next == null)
             {
                 return head;
             }
             ListNode dummyNode = new ListNode(0);
             dummyNode.next = head;
             ListNode pNode = head;
             while (pNode.next != null) 
             {
                 if (pNode.val <= pNode.next.val) {
                    pNode = pNode.next;
                }else {
                    ListNode tmpNode = pNode.next;
                    pNode.next = pNode.next.next;
                    ListNode qNode = dummyNode;
                    while (tmpNode.val >= qNode.next.val ) {
                        qNode = qNode.next;
                    }
                    tmpNode.next = qNode.next;
                    qNode.next = tmpNode;
                }
             }
             return dummyNode.next;
            
        }

    可以看出有附加头的,把插入统一处理了,简化了操作。

  • 相关阅读:
    PHP 数据库连接
    php函数
    php数组基础
    Jquery元素追加和删除
    jquery获取父,同,子级元素
    深入理解css中position属性及z-index属性
    php运算符
    MySQL主键与索引的区别和联系
    php 常量
    20150408--Sphinx+邮件激活-02
  • 原文地址:https://www.cnblogs.com/zqiguoshang/p/5897991.html
Copyright © 2020-2023  润新知