冒泡排序优化后
package com.atguigu.sort;import java.util.Arrays;/*** @創建人 wdl* @創建時間 2021/3/21* @描述*/
public class BubbleSort {public static void main(String[] args) {int arr[]={3,9,-1,10,20};//為了容易理解,我們吧冒泡排序的演變過程給大家展示//第一趟排序,就是將最大的數排在最后//冒泡排序 的時間復雜度O(n^2)int temp=0;//臨時變量boolean flag=false;//標識變量,標識是否進行交換for (int i = 0; i < arr.length - 1; i++) {for (int j = 0; j < arr.length - 1-i; j++) {//如果前面的數比后面的數大,則交換if(arr[j]>arr[j+1]){flag=true;temp=arr[j+1];arr[j+1]=arr[j];arr[j]=temp;}}System.out.println("第"+(i+1)+"趟排序后的數組");System.out.println(Arrays.toString(arr));if(flag==false){//在一趟排序中,一次交換都沒有發生過break;}else {flag=false;//重置flag!!!,進行下次判斷}}// //第二趟排序,就是將第二大的數排在倒數第二位
// for (int j = 0; j < arr.length - 1-1; j++) {
// //如果前面的數比后面的數大,則交換
// if(arr[j]>arr[j+1]){
// temp=arr[j+1];
// arr[j+1]=arr[j];
// arr[j]=temp;
// }
// }
// System.out.println("第二趟排序后的數組");
// System.out.println(Arrays.toString(arr));
//
// //第三趟排序,就是將第三大的數排在倒數第三位
// for (int j = 0; j < arr.length - 1-2; j++) {
// //如果前面的數比后面的數大,則交換
// if(arr[j]>arr[j+1]){
// temp=arr[j+1];
// arr[j+1]=arr[j];
// arr[j]=temp;
// }
// }
// System.out.println("第三趟排序后的數組");
// System.out.println(Arrays.toString(arr));
//
// //第四趟排序,就是將第四大的數排在倒數第四位
// for (int j = 0; j < arr.length - 1-3; j++) {
// //如果前面的數比后面的數大,則交換
// if(arr[j]>arr[j+1]){
// temp=arr[j+1];
// arr[j+1]=arr[j];
// arr[j]=temp;
// }
// }
// System.out.println("第四趟排序后的數組");
// System.out.println(Arrays.toString(arr));}
}
總結
- 上一篇: wps选择指定单元格内容(wps快速选中
- 下一篇: 2022年收视率最高的电视剧(今年最好看