2013-09-16 49 views
0

我有一個程序,檢查列表是否排序。我如何打印答案? (即「列表已排序」,「列表未排序」)。Sorted/Not sorted - 如何將答案打印到控制檯?

public class CheckList { 

public static void main(String[] args) { 
    int[] myList = new int[10]; 

    // Read in ten numbers 
    Scanner input = new Scanner(System.in); 
    System.out.println("Enter ten numbers: "); 
    for (int i = 0; i < myList.length; i++) { 
     myList[i] = input.nextInt(); 

    } 
} 

//Check if list is sorted 
public static boolean isSorted(int[] myList) { 
    if (myList[0] > 1) { 
     for (int i = 1; i < myList[0]; i++) 
      if (myList[i] > myList[i + 1]) 
       return false; 
    } 
    return true; 
} 
} 
+0

順便說一句,isSorted方法只是檢查數組是否升序排序。即使數組按降序排序,它也會返回false。 – user1401472

+0

@ user1401472它不會,當到達'myList [0]'時停止,所以如果我有一個3個元素的數組,並且'myList [0] = 5',則該方法會在某些時候拋出一個'IndexOutOfBoundsException'點。該算法不起作用:) – BackSlash

回答

3

只需撥打一個if裏面的方法:

if(isSorted(myList)) { 
    System.out.println("Array is sorted"); 
} else { 
    System.out.println("Array is not sorted"); 
} 

反正你isSorted方法不起作用,我會做這樣的事情:

//checks if array is sorted in ascending order 
public static boolean isSorted(int[] myList) { 
    if(myList == null) return false; //just checking 

    for (int i = 0; i < myList.length - 1; i++) { 
     if (myList[i] > myList[i + 1]) { 
      return false; 
     } 
    } 
    return true; 
} 
+0

現在像一個魅力工作,謝謝! – user2783940

+0

@ user2783940不客氣!如果你認爲這是最好的答案,不要忘記[接受它](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)! – BackSlash

1

只要打電話給方法之後for loop

for (int i = 0; i < myList.length; i++) { 
     myList[i] = input.nextInt(); 
    } 
if(isSorted(myList)) { 
    System.out.println("The list is sorted"); 
} else { 
    System.out.println("The list is not sorted"); 
} 
相關問題