如何对一个类进行计算并在另一个类上输出答案

时间:2013-12-15 10:12:18

标签: java class bubble-sort

抱歉再次转发这个问题,但我真的需要答案。

我需要的是获得泡泡列表的答案(在一个类上)以显示在另一个类上,如下所示:

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));**
        }
 }

4 个答案:

答案 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)

进行以下更改并重试

  1. :

  2. 中移除OddArrSe3:
  3. 制作BubbleSort4.bubbleSort()方法public

  4. 致电BubbleSort4.bubbleSort(array_sort);以缩短您的阵列

  5. BubbleSort4.bubbleSort()方法为void如果按以下方式调用,则会出现编译错误:

    System.out.println ("Bubble Sort : "+BubbleSort4.bubbleSort(array_sort)); 
    
  6. 将方法的返回类型更改为public int[] bubbleSort()并返回已排序的数组或使用for循环遍历数组并打印已排序的数字