DSA/SortingAlgo: BubbleSort

Harris_0716
Jun 12, 2023

--

前言:

BubbleSort反覆比較相鄰兩元素的大小,若次序錯誤則交換,每一回合可將最大值移到右邊

import java.util.Arrays;
class Main{
public static void main(String[] args) {
int arr[] = {4,7,2,9,1,3,6,5,8,0};
System.out.println("After Sorting: ");
BubbleSort(arr);
System.out.println(Arrays.toString(arr));
}
public static void BubbleSort(int[] arr){
int n = arr.length, temp;
for (int i = 0; i < n - 1; i++) { // 只需交換n-1次
boolean Flag = false; // 是否發生交換,若無,則跳出迴圈
for (int j = 0; j < n- 1 - i; j++) {
if (arr[j] > arr[j + 1]) { // 前大於後, 就交換
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
Flag = true;
}
}
if (!Flag){break;}
}
}
}
def bubbleSort(arr):
n = len(arr)
for i in range(n-1):
flag = False
for j in range(n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1],arr[j]
flag = True
if(not flag):
break
arr = [4,7,2,9,1,3,6,5,8,0]
bubbleSort(arr)
print(arr)

--

--

Harris_0716
0 Followers

I am graduate student from NCCU CS, and I majored in math at NCCU.