摘要:演示動圖演示具體過程代碼常規優化歸納排序方法時間復雜度最壞時間復雜度最好空間復雜度穩定性冒泡排序穩定總結代碼簡介但低效,僅用于入門。參考十大經典排序算法冒泡排序
1.算法描述
比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最后一對。這步做完后,最后的元素會是最大的數。
針對所有的元素重復以上的步驟,除了最后一個。
持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。
2.演示 2.1動圖演示 2.2具體過程 3.代碼 3.1常規// Java program for implementation of Bubble Sort class BubbleSort { void bubbleSort(int arr[]) { int n = arr.length; for (int i = 0; i < n-1; i++) for (int j = 0; j < n-i-1; j++) if (arr[j] > arr[j+1]) { // swap arr[j+1] and arr[i] int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } /* Prints the array */ void printArray(int arr[]) { int n = arr.length; for (int i=0; i3.2優化 // Optimized java implementation // of Bubble sort import java.io.*; class GFG { // An optimized version of Bubble Sort static void bubbleSort(int arr[], int n) { int i, j, temp; boolean swapped; for (i = 0; i < n - 1; i++) { swapped = false; for (j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) { // swap arr[j] and arr[j+1] temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; swapped = true; } } // IF no two elements were // swapped by inner loop, then break if (swapped == false) break; } } // Function to print an array static void printArray(int arr[], int size) { int i; for (i = 0; i < size; i++) System.out.print(arr[i] + " "); System.out.println(); } // Driver program public static void main(String args[]) { int arr[] = { 64, 34, 25, 12, 22, 11, 90 }; int n = arr.length; bubbleSort(arr, n); System.out.println("Sorted array: "); printArray(arr, n); } } // This code is contributed // by Nikita Tiwari.4.歸納5.總結
排序方法 時間復雜度(最壞) 時間復雜度(最好) 空間復雜度 穩定性 冒泡排序 O(n*n) O(n) O(1) 穩定 代碼簡介但低效,僅用于入門。
參考:
十大經典排序算法
Bubble Sort
[冒泡排序](
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74829.html
摘要:冒泡排序冒泡排序英語是一種簡單的排序算法。冒泡排序算法的運作如下比較相鄰的元素。冒泡排序動態圖代碼實現我們來逐行分析下。這里的減是為了不在遍歷之前排序好的元素。記錄交換的次數,但代表沒有交換,序列已經有序。 冒泡排序 冒泡排序(英語:Bubble Sort)是一種簡單的排序算法。它重復地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。遍歷數列的工作是重復地進行直...
摘要:前言冒泡排序大概的意思是依次比較相鄰的兩個數,然后根據大小做出排序,直至最后兩位數。由于在排序過程中總是小數往前放,大數往后放,相當于氣泡往上升,所以稱作冒泡排序。 前言 冒泡排序大概的意思是依次比較相鄰的兩個數,然后根據大小做出排序,直至最后兩位數。由于在排序過程中總是小數往前放,大數往后放,相當于氣泡往上升,所以稱作冒泡排序。但其實在實際過程中也可以根據自己需要反過來用,大樹往前放...
摘要:經過一次冒泡排序,最終在無序表中找到一個最大值,第一次冒泡結束。也是我們后面要說的冒泡排序的優化。冒泡排序只執行第一層循環,而不會執行第二層循環。因此冒泡排序的時間復雜度是。 showImg(https://user-gold-cdn.xitu.io/2019/6/19/16b6f986df6880f9?w=640&h=142&f=gif&s=17175);showImg(https:...
摘要:代碼修正后修改后,我們可以排列無限個數字這樣,一個冒泡排序就完成了。,數組名表示整個數組。 首先感謝一位博主: 原來45 他寫的博客內容十分詳細,為我創造博客提供了莫大的幫助,也為我解決了很多困難。 先貼出2篇他的文章 C語言從入門到入土(入門篇)(數組p1)_原來45的博客-CSDN博客 ...
閱讀 2733·2023-04-25 14:21
閱讀 1167·2021-11-23 09:51
閱讀 4001·2021-09-22 15:43
閱讀 606·2019-08-30 15:55
閱讀 1550·2019-08-29 11:28
閱讀 2439·2019-08-26 11:44
閱讀 1675·2019-08-23 18:15
閱讀 2875·2019-08-23 16:42