2017-01-14 6 views
0

バブルソートアルゴリズムを使用して配列をソートしようとしています。しかし、コードを実行するとArrayIndexOutofBoundExceptionが発生します。ここに私のコードは、あなたの内側のループ参照arr[j+1]以来バブルソートによる配列のソート

package bubblesort; 

public class BubbleSort { 

    public int[] sort(int [] arr){ 
    int temp=0; 
     for(int i=0 ; i<arr.length ; i++) 
      for(int j=0 ; j<arr.length-i ; j++){ 
       if(arr[j] > arr[j+1]) 
       { 
       temp=arr[j]; 
       arr[j]=arr[j+1]; 
       arr[j+1]=temp; 
       }} 
     return arr; 
    }  

    public static void main(String[] args) { 

     BubbleSort ob = new BubbleSort(); 
     int[]nums={2,5,1,55}; 
     System.out.println("Sorted list is:"); 
     int[]sorted =ob.sort(nums); 
     for(int i=0 ; i<nums.length;i++) 
      System.out.println(nums[i]);    
    } 
} 
+2

'c'-のための理由がありますあなたはそれを審美的に気に入っていますか? – EOF

+1

質問のC部分はどこにありますか? – Gerhardh

+0

@EOF陽気なコメント+1 –

答えて

1

で、それはすぐに一歩を終了し、最後の要素までを繰り返すべきではありません。

for(int i = 0 ; i < arr.length; i++) 
    for(int j = 0 ; j < arr.length - i - 1; j++) { 
     // Here ------------------------^ 
+0

ありがとうございます –