我需要的是获得泡泡列表的答案(在一个类上)以显示在另一个类上,如下所示:
public class BubbleSort4
{
public static void main(String[] args) {
int intArray[] = new int[]{5,90,35,45,150,3};
System.out.println("Array Before Bubble Sort");
for(int i=0; i < intArray.length; i++)
{
System.out.print(intArray[i] + " ");
}
bubbleSort(intArray);
System.out.println("");
System.out.println("Array After Bubble Sort");
for(int i=0; i < intArray.length; i++)
{
System.out.print(intArray[i] + " ");
}
}
private static void bubbleSort(int[] intArray)
{
int n = intArray.length;
int temp = 0;
for(int i=0; i < n; i++)
{
for(int j=1; j < (n-i); j++)
{
if(intArray[j-1] > intArray[j])
{
temp = intArray[j-1];
intArray[j-1] = intArray[j];
intArray[j] = temp;
}
}
}
}
}
得到上述编码的答案出现在OddArr3上:
System.out.println(“冒泡排序:”+ bubbleSort.sortBubble(intArray));
System.out.println(“冒泡排序:”+ bubbleSort.sortBubble(intArray));似乎不起作用。
以下是OddArr3的完整编码
import java.util.ArrayList;
import java.util.List;
import java.util.*;
public class OddArrSe3:
{
public static void main(final String[] args)
{
int[] array_sort = {10,41,21,24,34,15,40,12,32,23,13,25,30,31,22,33,14,35,20,11};
ArrayList<Integer> OddArr = new ArrayList<Integer>();
ArrayList<Integer> EvenArr = new ArrayList<Integer>();
for (int i : array_sort)
{
if ((i & 1) == 1)
{
OddArr.add(i);
}
else
{
EvenArr.add(i);
}
}
Collections.sort(OddArr);
Collections.sort(EvenArr);
System.out.println("Odd:" + OddArr);
System.out.println("Even:" + EvenArr);
int OddArr2[] = {11, 13, 15, 21, 23, 25, 31, 33, 35, 41};
int toSearch = 31;
int EvenArr2[] = {10, 12, 14, 20, 22, 24, 30, 32, 34, 40};
int toSearch2 = 32;
LinearSearch4 linearSearch = new LinearSearch4();
BinarySearch4 binarySearch = new BinarySearch4();
Bubblesort4 bubblesSort = new BubbleSort4();
System.out.println("Linear Search Index : "
+ linearSearch.searchLinear(OddArr2, toSearch));
System.out.println("Binary Search Index : "
+ binarySearch.searchBinary(EvenArr2, toSearch2));
**System.out.println ("Bubble Sort : " + bubbleSort.sortBubble(intArray));**
}
}
答案 0 :(得分:0)
回答你的问题。你的方法应该是公开的,而不是私人的。然后你可以访问它。
我还有两个评论:
main
方法?在小型prorgrams中,你通常只需要一个启动程序。OddArr2
/等类/方法的名称
OddArrSe3
。它们使代码不易理解。答案 1 :(得分:0)
1)请在课程名称'OddArrSe3'后删除冒号 2)正如Marcin Szymczak指出的那样,不需要两种主要方法。 3)将方法bubbleSort的签名更改为public int [] bubbleSort(int [] intArray)并在排序后返回intArray。 (私有方法在声明它们的类之外是不可访问的)
答案 2 :(得分:0)
您正在从实例调用静态方法。它应该是BubbleSort4.bubbleSort(...)
。
答案 3 :(得分:0)
进行以下更改并重试
从:
OddArrSe3:
制作BubbleSort4.bubbleSort()
方法public
致电BubbleSort4.bubbleSort(array_sort);
以缩短您的阵列
BubbleSort4.bubbleSort()
方法为void
如果按以下方式调用,则会出现编译错误:
System.out.println ("Bubble Sort : "+BubbleSort4.bubbleSort(array_sort));
将方法的返回类型更改为public int[] bubbleSort()
并返回已排序的数组或使用for
循环遍历数组并打印已排序的数字