/*2021.3.25
冒泡排序
*/
package sample;
public class Demo1 {
public static void main(String[] args) {
int[] arr = {15, 9, 90, 23, 25};//创建数组
System.out.println("排序前");
showArr(arr);//打印显示排序前
//循环实现冒泡排序
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
System.out.println("排序后");
showArr(arr);
}
//打印方法
private static void showArr(int[] arr) {
//增强for循环打印
for (int a : arr) {
System.out.print(a + "\t");
}
System.out.println();
}
}
优化版如下
/*2021.3.25
冒泡排序
*/
package sample;
public class Demo2 {
public static void main(String[] args) {
System.out.println("冒泡排序:");
int arr[] = {85,20,56,90,26} ;
boolean falg = false; //判断是否继续后续的比较轮数;
int tep = 0 ; //临时变量;
//外层循环控制比较的轮数,每论选出当前论的最大数;
//内层循环控制每轮的比较次数;
for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j < arr.length-i-1; j++) {
if(arr[j]>arr[j+1]){
tep = arr[j]; //以下三条是交换数据;
arr[j] = arr[j+1];
arr[j+1] = tep;
falg = true;
}
}
if(!falg){
break; //循环结束,无需将继续比较;
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println("从小到大为:"+arr[i]); //输出a[0]~a[4]的数据;
}
}
}