Array 和List对比之Partition

来源:互联网 发布:单片机秒表课程设计 编辑:程序博客网 时间:2024/05/29 05:11

List

class Solution {    public ListNode partition(ListNode head, int x) {        ListNode leftDummpy = new ListNode(0);        ListNode rightDummpy = new ListNode(0);        ListNode left = leftDummpy,right = rightDummpy;        while(head != null){            if(head.val < x){                left.next = head;                left = head;            }            else{                right.next = head;                right = head;            }            head = head.next;        }        //连接        right.next = null;        left.next = rightDummpy.next;        return leftDummpy.next;    }}

Array

public void quickSort(int[] nums,int start,int end){        if (start >= end) return;        //conquer        int left = start,right = end-1;        int mid = nums[end];        while(left < right){            while(left < right && nums[left] <= mid)                left ++;            while(left < right && mid <= nums[right])                right --;            swap(nums,left,right);        }        if(nums[left] > mid) swap(nums,left,end);        else {            left++;            swap(nums,left,end);        }        //divide        quickSort(nums,start,left-1);        quickSort(nums,left+1,end);    }


原创粉丝点击