对一个数组中的元素进行分拣C语言
时间: 2024-09-24 12:04:33 浏览: 74
在C语言中,对数组元素进行分拣通常指的是排序操作,最常见的有冒泡排序、选择排序、插入排序、快速排序、归并排序等。这里以快速排序为例,它是一种常用的高效的排序算法:
**快速排序 (Quicksort):**
```c
void quicksort(int arr[], int low, int high) {
if (low < high) {
// 选取中间值作为基准
int pivot = partition(arr, low, high);
// 分别对基准两侧的部分递归地进行排序
quicksort(arr, low, pivot - 1);
quicksort(arr, pivot + 1, high);
}
}
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;
}
```
以上代码展示了快速排序的基本步骤。如果你想对数组`arr`从下标0到`n-1`进行排序,可以调用`quicksort(arr, 0, n - 1)`。
阅读全文