插入排序-链表思路实现

所谓插入排序即一个无序的数组a,额外创建一个空数组b,将a中的数据依次放入b中,放入的时候就跟b中的数据依次比较大小完成排序

代码:

public class InsertSort {

    public static void insertSort(int[] ori) {
        ListNode fake = new ListNode(-1);
        ListNode head = new ListNode(ori[0]);
        ListNode pre = fake;
        fake.next = head;
        pre.next = head;
        for (int i=1;ihead.val) {
                    pre = head;
                    if (head.next==null) {
                        head.next = new ListNode(ori[i]);
                        break;
                    } else {
                        head = head.next;
                    }
                } else {
                    pre.next = new ListNode(ori[i]);
                    pre.next.next = head;
                    break;
                }
            }
        }
        while(fake!=null) {
            System.out.println(fake.val);
            fake = fake.next;
        }
    }

    public static void main(String[] args) {
        insertSort(new int[]{3,2,5,1,7,9,6});
    }
}

链表代码:

public class ListNode {

    public int val;
    public ListNode next;
    public ListNode(int x) { val = x; }
}

你可能感兴趣的:(Java算法)