class SortDemo2 {
public static void main(String[] args)
{
Arr();
}
public static void Arr()
{
int [] arr = {1,23,15,17,9,11,13,15};
int y = 0;
for (int x =0;x<arr.length-1;x++)
{
for (y=0;y<arr.length-1-x;y++) //这里要减for(y = 0; y < arr.length - 1 - i; y++)
{
if (arr[y]>arr[y+1])
{
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
for(Integer i:arr)
System.out.println(i);
}
因为冒泡排序是两个相邻的去比较,找到最大的放在最后, 所以第一次为0号索引到length-2号索引相邻的去比较(数组长度为length-1, 到最后是倒数第二个和最后一个比), 第二次是从0号索引到length-3号索引相邻的去比较(第一次已经找到最大的了, 所以第二次比较出最大的放在倒数第二个位置上)......因为找到最大的放在最后, 所以要第一次比较是length-1,第二次为length-2...... ; |