冒泡排序:
一次比较两个元素
比较一次找出一个最大值或最小值
下一次就可以少比较一个元素
最后一次只剩一个元素
则不必比较
定义进行排序的数组
int[] S = {10,9,8,7,6,5,4,3,2,1};
每次顺序比较两个数字
外层循环第1次: 9 8 7 6 5 4 3 2 1 10
//找出一个最大值 则第二次不必比较最后一个
外层循环第2次: 8 7 6 5 4 3 2 1 9 10
外层循环第9次: 1 2 3 4 5 6 7 8 9 10
//数组长度 - 1 次即可排序完成
实例
for(int i=0;i<S.length-1;i++)//外层循环控制比较次数
{
//内层循环当前元素与后一个比较 所以S.length - 1就能比较到最后一个元素
//外层循环一次找出一个最值于数组末尾 则减去外层循环次S.length - i
for(int j=0;j<S.length-i-1;j++)//内层循环控制比较元素
{
if(S[j] > S[j+1])//前一个与后一个进行比较
{
God = S[j];
S[j] = S[j+1];
S[j+1] = God;
}
}
}
//遍历输出数组元素
for (int i : S)
{
System.out.print(i);
}
运行结果:1 2 3 4 5 6 7 8 9 10