1. 程式人生 > >經典排序演算法——氣泡排序演算法詳解

經典排序演算法——氣泡排序演算法詳解

一、演算法基本思想

(1)基本思想

氣泡排序的基本思想就是:從無序序列頭部開始,進行兩兩比較,根據大小交換位置,直到最後將最大(小)的資料元素交換到了無序佇列的隊尾,從而成為有序序列的一部分;下一次繼續這個過程,直到所有資料元素都排好序。

演算法的核心在於每次通過兩兩比較交換位置,選出剩餘無序序列裡最大(小)的資料元素放到隊尾。


(2)執行過程

氣泡排序演算法的運作如下:

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

2、對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大(小)的數。

3、針對所有的元素重複以上的步驟,除了最後已經選出的元素(有序)。

4、持續每次對越來越少的元素(無序元素)重複上面的步驟,直到沒有任何一對數字需要比較,則序列最終有序。


(3)示例


程式碼例項:

package com.wuiruijiea.test;

public class BubbleSort
{
    public static void main(String[] args)
    {
        int[] arr={4,1,1,3,5,9,10,2,11,-1};
        bubbleSort(arr);
        for (int i = 0; i < arr.length; i++)
        {
            System.out.println(arr[i]);
        }
    }

    public static void bubbleSort(int[] arr){
        int tmp=0;
        for (int i = 0; i < arr.length; i++)
        {
            for (int j = 0; j < arr.length-1-i; j++)
            {
                if(arr[j]>arr[j+1]){
                    tmp=arr[j+1];
                    arr[j+1]=arr[j];
                    arr[j]=tmp;
                }
            }
        }
    }
}