冒泡排序
package blog; import java.util.Scanner; /** * 冒泡排序的思想:每次比较两个相邻的元素,如果他们的顺序错误就把他们交换过来 * @author 霍礼平 2017年8月10日 * */ public class 冒泡排序 { public static void main(String[] args) { while (true) { // 变量t用于交换 int t = 0; // 输入数据,从大到小排列 int a[] = new int[100]; Scanner sc = new Scanner(System.in); System.out.println("请输入要排序的个数"); int sum = sc.nextInt(); System.out.println("要排序依次是:"); for (int i = 1; i <= sum; i++) { a[i] = sc.nextInt(); } // 核心 for (int i = 1; i <= sum - 1; i++) {// 外层for是比较的次数,sum个数所以比较sum-1次 for (int j = 1; j <= sum - i; j++) { /* * 假如总共10(sum=10)个数,第1(i=1)轮,应比较9(sum-i)次 * 例如:第一次比较:第一个数与其他的9个数比较。第一个数的下标是j=1,比较完后比较的那个数要归位 * */ if (a[j] < a[j+1]) { t = a[j]; a[j] = a[j+1]; a[j+1] = t; } } } System.out.print( "从大到小依次: "); for (int i = 1; i <= sum; i++) { System.out.print(a[i] + " "); } System.out.println(); } } }
运行结果: