<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            java語言

            冒泡排序的原理以及java代碼實現

            時間:2024-12-29 17:20:14 java語言 我要投稿
            • 相關推薦

            冒泡排序的原理以及java代碼實現

              冒泡排序的原理以及java代碼實現

              概述

              冒泡排序是一種簡單的排序算法。

              它重復地走訪要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重復地進行直到數列已經排序完成。這個算法的名字由來是因為越小的元素會經由交換慢慢“浮”到數列的開始。

              簡單點說,就是:

              冒泡排序是將比較大的數字沉在數組的后面(可以理解為下面),較小的浮在前面(上面)。

              直觀釋義圖:

              步驟

              比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。

              對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最后一對。在這一點,最后的元素應該會是最大的`數。

              針對所有的元素重復以上的步驟,除了最后一個。

              持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。

              實例

              原始數據:

              3 5 2 6 2

              第一輪

              比較 3 和 5,5 大于 3 ,不需交換3 5 2 6 2繼續比較 5 和 2,5 大于 2,交換位置3 2 5 6 2繼續比較 5 和 6,6 大于 5,不需交換3 2 5 6 2繼續比較 6 和 2,6 大于 2,交換位置3 2 5 2 66 下沉到最后,兩個2都分別向上(前)冒出。

              第二輪

              比較 3 和 2, 3 大于 2,交換位置2 3 5 2 6比較 3 和 5, 5 大于 3,不需交換2 3 5 2 6比較 5 和 2, 5 大于 2,交換位置2 3 2 5 6不需比較 5 和 6

              第三輪

              比較 2 和 3, 3 大于 2,不需交換2 3 2 5 6比較 3 和 2, 3 大于 2,交換位置2 2 3 5 6不需比較了

              第四輪

              比較 2 和 2,不需交換2 2 3 5 6

              四輪結束

              2 2 3 5 6

              代碼實現(Java)

              package com.coder4j.main.arithmetic.sorting;public class Bubble { /** * 冒泡排序 * * @param array * @return */ public static int[] sort(int[] array) { int temp; // 第一層循環表明比較的輪數, 比如 length 個元素,比較輪數為 length-1 次(不需和自己比) for (int i = 0; i < array.length - 1; i++) { System.out.println("第" + (i + 1) + "輪開始"); // 第二層循環,每相鄰的兩個比較一次,次數隨著輪數的增加不斷減少,每輪確定一個最大的,不需比較那個最大的 for (int j = 0; j < array.length - 1 - i; j++) { if (array[j + 1] < array[j]) { temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } System.out.println("第" + (i + 1) + "輪,第" + (j + 1) + "次比較:"); for (int k : array) { System.out.print(k + " "); } System.out.println(); } System.out.println("結果:"); for (int k : array) { System.out.print(k + " "); } System.out.println(); } return array; } public static void main(String[] args) { int[] array = { 3, 5, 2, 6, 2 }; int[] sorted = sort(array); System.out.println("最終結果"); for (int i : sorted) { System.out.print(i + " "); } }}

              測試輸出結果:

              第1輪開始第1輪,第1次比較:3 5 2 6 2 第1輪,第2次比較:3 2 5 6 2 第1輪,第3次比較:3 2 5 6 2 第1輪,第4次比較:3 2 5 2 6 結果:3 2 5 2 6 第2輪開始第2輪,第1次比較:2 3 5 2 6 第2輪,第2次比較:2 3 5 2 6 第2輪,第3次比較:2 3 2 5 6 結果:2 3 2 5 6 第3輪開始第3輪,第1次比較:2 3 2 5 6 第3輪,第2次比較:2 2 3 5 6 結果:2 2 3 5 6 第4輪開始第4輪,第1次比較:2 2 3 5 6 結果:2 2 3 5 6 最終結果2 2 3 5 6

              經測試,與實例中結果一致。

            【冒泡排序的原理以及java代碼實現】相關文章:

            冒泡排序算法原理及JAVA實現代碼方法10-16

            Java 隊列實現原理及簡單實現代碼09-13

            java常見的排序算法的代碼09-20

            冒泡排序(C語言實現)08-30

            java利用反射實現動態代理實現代碼10-08

            java實現gif動畫效果代碼參考07-23

            java構造函數實現代碼示例08-23

            教你JAVA語言快速排序的原理10-04

            java插入法排序原理06-03

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看