快速排序


代码已经编译成功,大家放心看

import java.util.Arrays;
import java.util.Random;
public class quickSort {
    public static void main(String[] args) {
        int[] arr={5,4,3,2};
        partition(arr,0,3);
        System.out.println(Arrays.toString(arr));
    }
    public static int partition(int[] array, int start, int end){
        Random random = new Random();
        //生成[start, end]之间的随机数
        int index = random.nextInt(end)%(end - start + 1) + start;
        swap(array, index, end);

        int quick = start, slow = start;

        while(quick < end){
            if(array[quick] <= array[end]){
                if(quick != slow){
                    swap(array, quick, slow);
                }
                quick++;
                slow++;
            }else{
                quick++;
            }
        }
        swap(array, slow, end);
        return slow;
    }
    public static void swap(int [] array, int indexa, int indexb){
        int temp = array[indexa];
        array[indexa] = array[indexb];
        array[indexb] = temp;
    }
}

相关