配列を使ったバブルソートについて質問です。コード例を次に示します。
public class SortArray
{
public static void main(String[] args)
{
int[] arr = {4,6,4,2,764,23,23};
sort(arr);
}
static void sort(int[] arr)
{
int k;
for(int i = 0; i < arr.length; i++)
{
for(int j = i; j < arr.length-1; j++)
{
if(arr[i] < arr[j+1])
{
k = arr[j+1];
arr[j+1] = arr[i];
arr[i] = k;
}
}
System.out.print(arr[i] + " ");
}
}
}
配列をチェックするためのループが 2 つあります。最初のループは配列の各要素を処理することだと理解していますが、2 番目のループはどうでしょうか。なぜj
から始まり、i
なぜ長さマイナス1まで上がるのですか?
さらに、バブルソートを使用してソートできArrayList
ますか?