总结:一种简单的交换顺序,从数左边开始扫描待排序的元素,在扫描过程中依次对相邻元素进行比较,将较大值后移,每经过一轮排序后,值最大的元素将移到末尾,
此时记下该元素的位置,下一轮排序只需比较到此位置即可,如此重复,直到比较最后两个元素。
对个元素冒泡排序,总共需要进行n-1轮,第1轮需要比较n-1次,第2轮需要比较n-2次,第i轮需要比较n-i次,最后一轮需要比较1次
package com.aini; //5、给你一组字符如{1,3,4,7,2,1,1,5,2}, //让你输出里面出现次数最多且数值最大的一个,出现几次 public class word {// 先进行排序 public static void main(String[] args) { int a[] = { 1, 3, 4, 7, 5, 2 }; System.out.println("数组排列前的顺序为:"); for (int i = 0; i < a.length; i++) { System.out.println(a[i]);// 输出数组中的每个元素 } int temp;// 存储交换的变量值 for (int i = 0; i < a.length - 1; i++) {// 比较N-1轮 for (int j = 0; j < a.length - 1 - i; j++) {// 每轮比较 if (a[j] > a[j + 1]) {// 从小到大 temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } System.out.println(); System.out.print("数组排列后的顺序为:"); for (int i = 0; i < a.length; i++) {// 输出数组中每个元素的值 System.out.println(a[i]); } } }