问答详情
源自:3-3 第一版快速排序法

There‘s a problem with quicksort code

package com.imooc.oa.array;
import java.util.Random;
public class QuickSort {
    private QuickSort(){
    }
    public static int[] generateRandomArray(int n){
        if(n<0 || n>100000000) {
            System.out.println("超出范围");
            int[] arr ={-1};
            return arr;
        }
        int [] arr= new int[n];
        Random random = new Random();
        for(int i=0; i<n; i++){
            arr[i]=random.nextInt(n*3);
        }
        return arr;
    }
    private static void sort(int[] arr, int left,int right){
          if(left >= right) return;
          int point = partition(arr, left, right);
          sort(arr, left, point-1);
          sort(arr, point+1, right);
    }
    public static int partition(int[] arr, int left, int right){
        int j=left;
        int i;
        for( i = j+1; i<=right; i++){
            if(arr[i]<arr[j]){
                j++;
                swap(arr, i , j);
            }
        }
        swap(arr,left,j);
        return j;
    }
    public static void swap(int[] arr,int a, int b){
          int temp = arr[a];
          arr[a] = arr[b];
          arr[b] = temp;
    }
    public static void main(String[] args) {
        int[] a = QuickSort.generateRandomArray(20);
        for (int i=0; i<a.length; i++){
            System.out.print(a[i] + ",");
        }
        System.out.println();
        sort(a, 0, 19);
        for (int i=0; i<a.length; i++){
            System.out.print(a[i] + ",");
        }
    }
}

http://img3.mukewang.com/625ce21b0001168510790269.jpg


提问者:晓舟 2022-04-18 12:02

个回答

  • 晓舟
    2022-04-19 10:57:26

    知道问题了,over.