假如有几个数字int s[] = {57, 68, 72, 88}; 按照从大到小排序。
s[i] 和 score[i+1] 比较,如果前者比后者小,把前者和后者调换顺序,两两调换经过一轮之后,最小的会被排到最后去。
每一轮i都从0开始,当j轮排序,就有最后面的j个数字因为他是最小的,所以后面的每轮都不用理他了,也就是 score.length-1-j 往后的数不用管了,如上,第一轮有4个数字 j为0 ,那么score.length-1-j 为3,也就是下标是3以后的可以不用管,3往后没有数字,所以第一轮所有的数字都要参加比较,第二轮j=1 score.length-1-j 为2 也就是说 下标2后面的 下标为3的数字不用比了,因为两两比较厚,57会到 score[3]。
实现代码如下:
for(int j =0;j < score.length - 1;j++)
{ for(int i = 0;j < score.length - 1-i;i++)// j开始等于0,
{ if(score[i] < score[i+1])
{ int temp = score[i];
score[i] = score[i+1];
score[i+1] = temp; }
}
}