冒泡排序:
对未排序的数组中的元素从头到尾依次比较相邻的两个元素,若第前一个元素大于后面一个元素那么就交换两个元素
的位置,经过一轮的比较,那么最大的那个元素,会存到数组的最后一位,每比较一次就会有一个正确的数字放到正确的位置
例如: 6,4,9,1,3 --> 升序
4,6,1,3,9 -->一轮排序
4,1,3,6,9 -->二轮排序
1,3,4,6,9 --> 三轮排序
1,3,4,6,9 --> 四轮排序
1,3,4,6,9 --> 五轮排序
public class MaoPaoSortArray {
public static void main(String[] args) {
//创建数组
int[] arr = new int[10];
//向数组中随机存储0-100之间的值
for(int i = 0; i<arr.length;i++) {
arr[i] = (int)(Math.random()*100);
}
//打印没有排序之前数组值
//对数组进行排序操作
//1.数组中所有的元素都需要进行一次比较,所以通过循环满足每一个元素比较
for(int i = 0 ;i<arr.length;i++) {
//控制比较次数
//arr.length-1的目的是为了方式数组下标越界异常 原因在于 j+1 会到大数组的长度
//-i随着比较次数的逐渐增多,每一次都会有一个正确数放到正确的位置,那么通过-i操作
//减少当前需要排序的元素个数
for(int j = 0; j<arr.length-1-i;j++) {
//具体元素的比较
if(arr[j] > arr[j+1]) {
//交换
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp; }
}
System.out.print("第"+(i+1)+"次排序的结果:\t");
for(int m = 0;m<arr.length;m++) {
System.out.print(arr[m]+"\t");
}
System.out.println();
}
}
}