首页 > 软件 > java 快速排序代码为什么右边没有排好

java 快速排序代码为什么右边没有排好

软件 2023-04-30

快速排序 java,我的代码如下,出来的结果一直不对,谁给我看看什么原因?

您好,按照你现在的程序你编译后的结果应该是数组里面的数字,大的都到了右边,小的都到了左边,但是右边大的和左边小的并没有进一步排序,问题就在于

你的这部分代码根本就没有用的,在main方法里面没有调用,在patition方法中也没有调用,导致这部分代码就没有使用,所以也不可能完成递归,对左右两边的数字没有办法进一步排序,希望对你有用。

用JAVA写了个快速排序,不知道为什么总不对

我晕,一个简单的数字排序,有必要写成这样吗?随便看写就发现有很的基础性错误,比如:类名错误,不能用“-”;判断数组是否为空时,应用“==”;main方法直接调用排序方法时,必须把该方法定义为静态才行啊…… 随便写了个简单点的,参考一下: public class MyListUtil { public static void main(String[] args) { int[] a = {3,1,5,12,-22,2,50,-4,21,33}; for (int i = 0; i < queue(a).length; i++) { System.out.println(queue(a)[i]

java快速排序结果有问题啊,大神们可以帮忙看看吗?

你这个不是很好改。明显错误的地方是最后一句。 Arrays.copyOfRange() 这个方法返回的是一个新数组对象,也就是说你最后一句是对这个新对象进行排序,而不是原来的 arr 这个对象。没有任何作用。

关于JAVA快速排序算法问题,请大神指教啊!!!

//我按着你的思路写的,自己看看吧,我运行过,结果正确 public class QuickSort { public static void main(String[] args) { int[] array = new int[]{2,5,3,8,7,0,1,4,6,9,10}; int left = 0; int right = array.length-1; qsort(array,left,right); for(int index:array){ System.out.print(index+" "); } } public static void qsort(int[] arra

java快速排序,这个排序哪里出问题为什么在java上运行有错,vc++上成功

public static void quic(int b[],int low,int high) { if(low>=high)//将这句提前判断就可以了,实际上vc++可能存在数组越界的可能但vc不会报错,当你再次调用这两句 quic(b,low,i-1);quic(b,i+1,high);时可能让low成为一个不存在的下表,所以当检查到这句时程序就会终止,java拥有比c++更加严格的检查机制,避免了程序中隐藏的一些错误,如内存泄露,数组越界,程序崩溃,野指针等导致程序崩溃或编译出错的一系列问题。 return ; int i=low,j=high; int t=b[low]; whil

标签:信息技术 Java 编程 快速排序 Java编程

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18