Write your own code and record it. Two kinds of partition methods are recorded separately.
Public classQuickSort { Public Static voidQuickSort (int[] Nums,intStartintend) { if(Start >=end) { return; } intPivot =Partition2 (nums, start, end); QuickSort (nums, start, pivot-1); QuickSort (nums, Pivot+ 1, end); } Public Static intPartitionint[] Nums,intStartintend) { intPivot =start; for(inti = start + 1; I <= end; i++) { if(Nums[i] <=Nums[start]) {Pivot++; inttemp =Nums[pivot]; Nums[pivot]=Nums[i]; Nums[i]=temp; } } inttemp =Nums[pivot]; Nums[pivot]=Nums[start]; Nums[start]=temp; returnpivot; }//Better Partition Method Public Static intPartition2 (int[] Nums,intStartintend) { intPivot = start, I = Start + 1, j =end; while(I <j) { while(I <= end && Nums[i] <=Nums[pivot]) {i++; } while(Nums[j] >Nums[pivot]) {J--; } if(I >=j) { Break; } inttemp =Nums[i]; Nums[i]=Nums[j]; NUMS[J]=temp; } I--; inttemp =Nums[i]; Nums[i]=Nums[pivot]; Nums[pivot]=temp; returni; } Public Static voidMain (string[] args) {int[] Nums =New int[]{13, 6, 9, 1, 19,-21, 5}; QuickSort (Nums,0, Nums.length-1); System.out.println (Nums); }}
Fast sorting Quick Sort