快速排序算法是一種常見的排序算法,其基本思想是通過一趟排序將待排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另一部分的所有數據小,然后分別對這兩部分數據進行排序,循環遞歸直到整個序列有序。
以下是C語言實現快速排序算法的示例代碼:
#include <stdio.h>
void quickSort(int arr[], int left, int right) {
int i = left, j = right;
int pivot = arr[(left + right) / 2];
while (i <= j) {
while (arr[i] < pivot) {
i++;
}
while (arr[j] > pivot) {
j--;
}
if (i <= j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
i++;
j--;
}
}
if (left < j) {
quickSort(arr, left, j);
}
if (i < right) {
quickSort(arr, i, right);
}
}
int main() {
int arr[] = {12, 34, 23, 45, 56, 67, 78, 89, 90, 11};
int n = sizeof(arr) / sizeof(arr[0]);
quickSort(arr, 0, n - 1);
printf("Sorted array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
在上面的代碼中,quickSort
函數實現了快速排序算法的邏輯,其中left
表示數組的起始索引,right
表示數組的結束索引。在主函數中,我們定義了一個數組arr
并調用quickSort
函數對其進行排序,最后打印排序后的結果。
注意:上面的示例代碼只是一種實現方式,實際應用中可能需要根據具體情況進行優化和改進。