Java冒泡排序法


冒泡排序法:

概念:

冒泡排序(Bubble Sort),是一種計算機科學領域的較簡單的排序算法。
它重復地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序(如從大到小、首字母從A到Z)錯誤就把他們交換過來。走訪元素的工作是重復地進行直到沒有相鄰元素需要交換,也就是說該元素已經排序完成。
這個算法的名字由來是因為越大的元素會經由交換慢慢“浮”到數列的頂端(升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名“冒泡排序”。

代碼實現(以藍橋杯中的問題為例!):

 1 /**
 2 問題描述
 3   給定一個長度為n的數列,將這個數列按從小到大的順序排列。1<=n<=200
 4 輸入格式
 5   第一行為一個整數n。
 6   第二行包含n個整數,為待排序的數,每個整數的絕對值小於10000。
 7 輸出格式
 8   輸出一行,按從小到大的順序輸出排序后的數列。
 9 樣例輸入
10 5
11 8 3 6 4 9
12 樣例輸出
13 3 4 6 8 9
14 **/
15 import java.util.Scanner;
16 
17 public class Main {
18     public static void main(String[] args) {
19         Scanner sc = new Scanner(System.in);
20         int n = sc.nextInt();
21         if (n >= 1 && n <= 200) {
22             int[] a = new int[n];
23             for (int i = 0; i < n; i++) {
24                 a[i] = sc.nextInt();
25                 if(a[i]<-10000||a[i]>10000){
26                     return;
27                 }
28             }
29 
30             // 這里為最主要的部分
31             for (int i = 0; i < a.length - 1; i++) {
32                 for (int j = 0; j < a.length - i - 1; j++) {
33                     if (a[j] > a[j + 1]) {
34                         int temp = a[j];
35                         a[j] = a[j + 1];
36                         a[j + 1] = temp;
37                     }
38                 }
39             }
40             for (int i = 0; i < a.length; i++) {
41                 System.out.print(a[i] + " ");
42             }
43 
44         }
45     }
46 }

優缺點:

優點:比較簡單,空間復雜度較低,相比於其他的排序方法,是比較穩定的

缺點:時間復雜度相對來說較高,相比於其他的排序方法,效率比較慢

 


免責聲明!

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



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