快排的实现(Java)

来源:互联网 发布:为知笔记活动 编辑:程序博客网 时间:2024/06/08 22:45

1、partition函数用于返回主元在排序后所在的索引
2、quickSort函数递归调用,分别对主元两侧的子数组排序

public static void quickSort(arr,p,r){    if(p<r){        q = partition(arr,p,r);   //下标q是作为分区的基准使用        quickSort(arr,p,q-1);        quickSort(arr,q+1,r);    }}
public static int partition(arr,p,r){    int x = arr[r];     //x作为基准    int i = p-1;  //    for(int j = p; j < r; j++){        if(arr[j] <= x){            i = i+1;            exchange(arr[i],arr[j]);        }    }    exchange(arr[i+1],arr[r]);    return i+1;} 

exchange用于交换两个元素的位置

public static void exchange(int i,int j){    int tmp = i;    i = j;    j = tmp;}
1 0
原创粉丝点击