基礎排序
-
交換函數
void swap(int arr[], int i, int j) { int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; }
-
冒泡排序
void bubble_sort(int arr[], int n) { for (int i = 0; i < n; i++) { for (int j = n-1; j >= i; j--) { if (arr[j-1] > arr[j]) { swap(arr, j-1, j); } } } }
-
選擇排序
void selection_sort(int arr[], int n) { for (int i = 0; i < n-1; i++) { int min_val = arr[i], min_index = i; for (int j = i+1; j < n; j++) { if (arr[j] < min_val) { min_val = arr[j]; min_index = j; } } swap(arr, i, min_index); } }
-
插入排序
void insertion_sort(int arr[], int n) { for (int i = 1; i < n; i++) { for (int j = i-1; j >= 0 && arr[j+1] < arr[j]; j--) { swap(arr, j, j+1); } } }