zoukankan      html  css  js  c++  java
  • 利用插入排序对链表进行排序

    下图是对 4-15-9-1插入排序的举例

    当if(p.val<=p.next.val){
                    p=p.next;}  当不满足条件时 q=p.next  p.next=q.next 

    这时候,需要把q节点放到p节点之前的合适位置,即

    while(r.next.val<=q.val){
                        r=r.next;
                    }

    当条件满足时 r后移,当不满足时表示,找到比q节点大的数,那么需要把q节点放入r.next之前

    q.next=r.next;
       r.next=q;

    具体代码如下:

      public ListNode insertionSortList(ListNode head) {
            if(head == null || head.next== null){
                return head;
            }
            ListNode head1 = new ListNode(0);
            head1.next=head;
            ListNode p = head;
            ListNode q;
            ListNode r;
            while(p != null && p.next != null){
                if(p.val<=p.next.val){
                    p=p.next;
                }else{
                    q=p.next;
                    p.next=q.next;
                    r=head1;
                    while(r.next.val<=q.val){
                        r=r.next;
                    }
                    q.next=r.next;
                    r.next=q;
                }
            }
            
            return head1.next;
            
        }

  • 相关阅读:
    三、Pandas入门
    二、NumPy入门
    jQuery模拟angular的数据绑定
    ajax里的getJSON的用法
    SQL中关于传递参数为Null的示例
    原生ajax示例
    页面自增加示例
    angular1数据绑定例子
    angular2 工程目录结构介绍
    angular js环境配置
  • 原文地址:https://www.cnblogs.com/wanglingdeboke/p/9484355.html
Copyright © 2011-2022 走看看