經典排序演算法——氣泡排序演算法詳解
阿新 • • 發佈:2018-12-07
一、演算法基本思想
(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; } } } } }