冒泡排序


冒泡排序

 

package com.zishi.Array;

import java.util.Arrays;

public class ArrayDemo07 {
   //冒泡排序
   //1、比較數組中,兩個相鄰的元素,如果第一個數比第二個數大,我們就交換他們的位置
   //2.每一次比較,都會產生出一個最大,或者最小的數字;
   //3.下一輪則可以少一次排序!
   //4.依次循環,直到結束!
   public static void main(String[] args) {
       int[] a = {1, 2, 5, 6, 2, 5, 6, 25, 2, 6, 22, 565};

       //sort(a);
       //System.out.println(Arrays.toString(a));

       int[] sort = sort(a);   //調用完我們自己寫的排序方法后,返回一個排序后的數組
       System.out.println(Arrays.toString(sort));
  }
   public static int[] sort(int[] a){
       //臨時變量
       int temp = 0;

       boolean flag = false;  //通過flag標識位減少沒有意義的比較

       //外層循環,判斷我們這個要走多少次
       for (int i = 0; i < a.length-1; i++) {
           //內存循環,比較兩個數,如果第一個數比第二個數大,則交換位置
           for (int j = 0; j < a.length-1-i; j++) {
               if(a[j+1]<a[j]){
                   temp = a[j];
                   a[j] = a[j+1];
                   a[j+1] = temp;
              }
          }
           if(flag == false){
               break;
          }
      }



       return a;
  }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM