gpt4 book ai didi

java - 快速排序 - 无法正常工作,你能找到我缺少逻辑的地方吗

转载 作者:行者123 更新时间:2023-12-02 00:39:09 25 4
gpt4 key购买 nike

class test
{
static int arr[]={1,6,3,4,5,8,11};
static int s=0,temp=0,e=0;
public static void main(String [] args)throws Exception
{
QS(arr,0,arr.length-1);

for(int i=0;i<arr.length;i++)
System.out.print(arr[i]+" ");

}

public static void QS(int arr[] ,int i,int j)throws Exception
{
int key=i;
int low=i+1;
int up=j;
int temp=0;
System.out.println(key);
while(low<=up)
{
do{
low++;
}while(arr[low]<arr[key]);

do{
up--;
}while(arr[up]>arr[key]);

if(low<=up)
{
temp=arr[up];
arr[up]=arr[low];
arr[low]=temp;
}
}
System.out.println(low+"++++"+up);

temp=arr[up];
arr[up]=arr[key];
arr[key]=temp;
if(0<up-1)
QS(arr,i,up-1);
if(low< arr.length-2)
QS(arr,low,j);
}
}

最佳答案

因为这看起来像家庭作业,所以这是我的建议:

完成分区步骤后,打印出数组以及数据元的值和位置,并目视验证分区是否已正确完成。如果还没有(我怀疑是这种情况),请添加更多打印语句 - 或使用调试器 - 以了解程序哪里出了问题。

一旦分区工作,就继续递归。这相对简单:您所要做的就是确保 QS 使用正确的 ij(两次)调用自身,并且基本情况得到正确处理。

关于java - 快速排序 - 无法正常工作,你能找到我缺少逻辑的地方吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6856797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com