晓舟
2022-04-18 12:02
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] + ","); } } }
知道问题了,over.
算法与数据结构初体验
1192 学习 · 4 问题