📚 在编程的世界里,排序算法是不可或缺的一部分。今天,让我们一起探索一种高效且广泛应用的排序方法——快速排序。快速排序是一种分而治之的策略,它通过一个称为“基准”的元素将数组分为两部分,左边的元素都比基准小,右边的元素都比基准大,然后递归地对这两部分进行排序。
💡 算法思想如下:
1️⃣ 选择一个“基准”元素。
2️⃣ 将所有小于基准的元素移动到基准的左侧,大于基准的元素移动到右侧。
3️⃣ 对基准左右两侧的子数组重复上述过程,直到整个数组有序。
🛠️ 下面是一个简单的C语言实现示例:
```c
include
void swap(int a, int b) {
int t = a;
a = b;
b = t;
}
int partition (int arr[], int low, int high) {
int pivot = arr[high];
int i = (low - 1);
for (int j = low; j <= high- 1; j++) {
if (arr[j] <= pivot) {
i++;
swap(&arr[i], &arr[j]);
}
}
swap(&arr[i + 1], &arr[high]);
return (i + 1);
}
void quickSort(int arr[], int low, int high) {
if (low < high) {
int pi = partition(arr, low, high);
quickSort(arr, low, pi - 1);
quickSort(arr, pi + 1, high);
}
}
void printArray(int arr[], int size) {
for (int i=0; i < size; i++)
printf("%d ", arr[i]);
printf("\n");
}
```
🌈 快速排序以其简洁高效的特性,在众多排序算法中脱颖而出。希望这个示例能帮助你更好地理解和应用快速排序!