开发者社区> 问答> 正文

用JAVA实现快速排序算法?

用JAVA实现快速排序算法?

展开
收起
知与谁同 2018-07-22 10:17:19 1863 0
2 条回答
写回答
取消 提交回答
  • public void quickSort(int left,int right,int a[])
    {
    int l=left;
    int r=right;
    int pivot=a[(l+r)/2];//转轴数
    int temp=0;
    while(l<r)
    {
    while(a[l]<pivot)l++;
    while(a[r]>pivot)r--;

    if(l>=r)break;

    temp=a[l];
    a[l]=a[r];
    a[r]=temp;

    if(a[l]==pivot)r--;
    if(a[r]==pivot)l++;
    }
    if(l==r)
    {
    l++;
    r--;
    }
    if(left<r)quickSort(left,r,a);
    if(right>l)quickSort(l,right,a);
    }
    2019-07-17 22:49:48
    赞同 展开评论 打赏
  • 本人特地给你编的代码
    亲测

    public class QuickSort {

    public static int Partition(int a[],int p,int r){
    int x=a[r-1];
    int i=p-1;
    int temp;
    for(int j=p;j<=r-1;j++){
    if(a[j-1]<=x){
    // swap(a[j-1],a[i-1]);
    i++;
    temp=a[j-1];
    a[j-1]=a[i-1];
    a[i-1]=temp;

    }
    }
    //swap(a[r-1,a[i+1-1]);
    temp=a[r-1];
    a[r-1]=a[i+1-1];
    a[i+1-1]=temp;

    return i+1;

    }

    public static void QuickSort(int a[],int p,int r){

    if(p<r){
    int q=Partition(a,p,r);
    QuickSort(a,p,q-1);
    QuickSort(a,q+1,r);

    }

    }

    public static void main(String[] stra){

    int a[]={23,53,77,36,84,76,93,13,45,23};
    QuickSort(a,1,10);

    for (int i=1;i<=10;i++)
    System.out.println(a[i-1]);

    }

    }
    2019-07-17 22:49:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载