gpt4 book ai didi

java - 在 java (netbeans) 中帮助快速排序算法

转载 作者:行者123 更新时间:2023-11-29 05:29:36 25 4
gpt4 key购买 nike

我是编程新手,我才刚刚开始使用 java。我的任务是编写一个使用快速排序的程序,我设法编写了它,但它总是给我一个超出范围的索引。任何人都可以看看我的代码并通过确定我做错了什么来帮助我吗?谢谢

这是主类的代码。

package quicksort;

public class Quicksort {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here

int[] x = {5,3,10,1,9,8,7,4,2,6,0};

quicksort_class q = new quicksort_class(x);

q.sort();

for(int i = 0; i < 11-1; i++)
{
System.out.println(x[i]);
}
}
}

这是 quicksort_class 的代码。

public class quicksort_class {

int[] array1 = new int[11];


public quicksort_class(int[] w)
{
array1 = w;
}
public void partitionstep(int leftlimit, int rightlimit)
{
int LPointer = leftlimit;

int RPointer = rightlimit;

Random random = new Random();

int midpoint = random.nextInt(11);

int checknumber = array1[midpoint];

while(LPointer < RPointer)
{
while(array1[LPointer] <= checknumber)
{
LPointer = LPointer + 1;
}

while(array1[RPointer] >= checknumber)
{
RPointer = RPointer --;
}

swap(LPointer, RPointer);

partitionstep(leftlimit, midpoint - 1);

partitionstep(midpoint + 1, rightlimit);
}
}

public void swap(int x, int y)
{
int temp = array1[x];

array1[x] = array1[y];

array1[y] = temp;
}

public void sort()
{
partitionstep(0, array1.length - 1);
}
}

最佳答案

您的midpoint 值应根据您的leftLimitrightLimit 计算。它不应是基于固定值 11 的随机值。

关于java - 在 java (netbeans) 中帮助快速排序算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21582103/

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