冒泡法排序:指的是在排序时,从前往后扫描待排序记录,每次比较数组中相邻的两个数组元素的值,将较小的数(按从小到大排列)排在较大的数前面。
例:原始数据 10,5,6,9,1(将原始数据进行升序排序)
第一趟排序:5,6,9,1,10
第二趟排序:5,6,1,9,10
第三趟排序:5,1,6,9,10
第四趟排序:1,5,6,9,10
总共有5个元素比较了4趟,第一趟比较了4次,第二趟比较了3次,以此类推,每趟比较的次数比上一次少1。
设i为躺数,arrays.length为元素个数,j为每一趟的排序次数,则 i<arrays.length-1 j<arrays.length-1-i
public class ArrayDemo05 {
public static void main(String[] args) {
//冒泡排序
int[] arrays = {10,5,6,9,1};
int t = 0;
// 外层循环 总排序轮数=元素个数-1
for (int i = 0; i < arrays.length-1; i++) { //i代表排序轮数, 总轮数=元素个数-1
// 内层循环 每轮对比次数=元素个数-1-排序轮数
for (int j = 0; j < arrays.length-1-i; j++) { //j代表排序次数 ,次数=个数-轮数-1
if(arrays[j+1]<arrays[j]){
t=arrays[j];
arrays[j]=arrays[j+1];
arrays[j+1]=t;
}
}
}
System.out.println(Arrays.toString(arrays));
}
}