冒泡排序的两种写法

for(int i =0;i < score.length - 1;i++)
{
for(int j = 0;j < score.length - 1-i;j++)// j开始等于0,
{
if(score[j] < score[j+1])
{
int temp = score[j];
score[j] = score[j+1];
score[j+1] = temp;
}
}
}

分析:第一个元素和后面的所有元素比较,内层循环一轮结束,就可以将最大的数放到最后;接下来是执行第二次内层的循环,将已经排序之后的数组(已经排列好最大的数字)的第二大的数字放到倒数第二位;接下来是依次将大数放到后面。

for(int i =0;i < score.length - 1;i++)
{
for(int j = (score.length - 2);j >= 0;j--)
{
if(score[j] < score[j+1])
{
int temp = score[j];
score[j] = score[j+1];
score[j+1] = temp;
}
}
}

分析:这种写法的思想是:从数组的最后一个元素进行和之前所有的元素进行比较,只一次内层的循环,将最小的数字放到第一位;接下来是执行第二次的内层循环,将第二小的的放到第二位,依次将数组从小到大排列。

原文地址:https://www.cnblogs.com/dadada-jiasheng/p/8689469.html