冒泡排序的思想:
将相邻的俩个数进行比较换位
比如有以下一个数组:
int[] arr = {5,1,4,8,2};
第一趟: 第一次5与1比较 5-1换位; 得到1 5 4 82 第二次:5 - 4 换位:得到:1 4 5 8 2 第三次: 5与 8换位,得到: 1 4 5 8 2 第四次: 8 与2换位: 得到1 4 5 2 8
第一趟得到一个最大数: 排在最后面
第二趟: 同样进行冒泡排序: 第一次 1与4 第二次: 4与5 第三次:5与2比较 进行换位: 得到1 4 2 5 8
第二趟:得到一个倒数第二大的数,排在倒数第二位:
第三躺: 第一次: 1与4 第二次: 4与2比较进行换位: 得到1 2 4 5 8
第三躺:得到一个倒数第三大的数,排在倒数第三位;
第四趟: 1与2比较,不用换位: 比较完毕
从这个过程中: 我们可以看出: 躺数;就是数组长度-1,衍生而来的就是,我们可以利用这个方法,选出数组中最大的数,当然就在第一趟中解决;
代码实现: 这个过程,一看就需要利用循环来解决.并且一层循环无法解决,需要用到双层循环;
这里需要用的一个只是点就是,交换值
int x =5,y=10; //定义两个变量
int temp = x; //定义第三临时变量temp并提取x值
x = y; //把y的值赋给x y = temp; //然后把临时变量temp值赋给y
代码实现:
int [] arr ={9,8,7,6,5,4};
for(int i =0; i< arr.length-1;i++) {for(int j=0;j<arr.length-1;j++) {
if(arr[j] > arr[j+1] ) {
int temp = arr[j+1];
arr[j+1] = arr[j]; // 值的交换;
arr[j]=temp;
}
}
}
for(int i = 0; i< arr.length;i++) {
if(i==arr.length-1) {
System.out.println(arr[i]);
break; // 这里是为了打印最后一个值时,不打印","号;
}
System.out.print(arr[i] + " ,");
System.out.println("数组中最大的值是" + arr[5]);
}