java数组排序

来源:互联网 发布:狼群算法求解 编辑:程序博客网 时间:2024/04/25 04:45

    直接代码,尽可能的减少循环次数

public static void main(String[] args) {// TODO Auto-generated method stubint 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");}}


0 0