题解 | JAVA QuickSort#排序# [P0]

排序

http://www.nowcoder.com/practice/2baf799ea0594abd974d37139de27896

时间O(NlogN)
空间 avg O(logN), worst O(N), 栈高
import java.util.*;

public class Solution {
    public int[] MySort (int[] arr) {
      quickSort(0, arr.length-1, arr);
      return arr;
    }
  
    void quickSort(int start, int end, int[] arr) {
      if (start < end) {
        int pivot = partition(start, end, arr);
        quickSort(start, pivot-1, arr);
        quickSort(pivot+1, end, arr);
      }
    }
  
    int partition(int start, int end, int[] arr) {
      int pV = arr[start];
      int i = start, j = end;
      while (i < j) {
        while (i < end && arr[i] <= pV) i++;
        while (j > start && arr[j] >= pV) j--;
        if (i < j) swap(i, j, arr);
      }
      swap(start, j, arr);
      return j;
    }
  
    void swap(int i, int j, int[] arr) {
      int tmp = arr[i];
      arr[i] = arr[j];
      arr[j] = tmp;
    }
}
全部评论

相关推荐

点赞 评论 收藏
分享
ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务