直接代码,尽可能的减少循环次数
public static void main(String[] args) {
// TODO Auto-generated method stub
int score[] = { 67, 65, 75, 87, 110, 90, 99, 100 };
arrSortMinToMax(score);
arrSortMaxToMin(score);
}
private static void arrSortMinToMax(int score[]){
for (int i = 0; i < score.length - 1; i++) { // 最多做n-1趟排序
for (int j = i+1; j < score.length ; j++) { //j=i+1,每次确定一个数,即可以少循环一次
if (score[j] < score[i]) { // 把小的值交换到前面
int temp = score[j]; //互换数据位置,所以要中间变量,也可以和起来再减去自己。常规还是用中间变量
score[j] = score[i];
score[i] = temp;
}
}
System.out.print("第" + (i + 1) + "次排序结果:");
for (int a = 0; a < score.length; a++) {
System.out.print(score[a] + "\t");
}
System.out.println("");
}
System.out.print("最终排序结果:");
for (int a = 0; a < score.length; a++) {
System.out.print(score[a] + "\t");
}
System.out.println("");
}
private static void arrSortMaxToMin(int score[]){
for (int i = 0; i < score.length - 1; i++) { // 最多做n-1趟排序
for (int j = i+1; j < score.length ; j++) {
if (score[j] > score[i]) { // 把大的值交换到前面
int temp = score[j];
score[j] = score[i];
score[i] = temp;
}
}
System.out.print("第" + (i + 1) + "次排序结果:");
for (int a = 0; a < score.length; a++) {
System.out.print(score[a] + "\t");
}
System.out.println("");
}
System.out.print("最终排序结果:");
for (int a = 0; a < score.length; a++) {
System.out.print(score[a] + "\t");
}
}