用c++编写快速排序算法,可以定义数组的大小和数值,能够对数组进行快速排序。
时间: 2024-05-12 10:19:55 浏览: 99
以下是使用 C 语言编写的快速排序算法:
```c
#include <stdio.h>
void quickSort(int arr[], int low, int high);
int main() {
int size, arr[1000], i;
printf("Enter the size of the array: ");
scanf("%d", &size);
printf("Enter the elements of the array: ");
for(i = 0; i < size; i++) {
scanf("%d", &arr[i]);
}
quickSort(arr, 0, size - 1);
printf("Sorted array: ");
for(i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
return 0;
}
void quickSort(int arr[], int low, int high) {
int pivot, i, j, temp;
if(low < high) {
pivot = low;
i = low;
j = high;
while(i < j) {
while(arr[i] <= arr[pivot] && i < high)
i++;
while(arr[j] > arr[pivot])
j--;
if(i < j) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
temp = arr[pivot];
arr[pivot] = arr[j];
arr[j] = temp;
quickSort(arr, low, j - 1);
quickSort(arr, j + 1, high);
}
}
```
在这个程序中,我们首先定义了一个数组和数组的大小。然后,我们使用 scanf() 函数从用户输入中读取数组元素。接下来,我们调用 quickSort() 函数对数组进行快速排序。最后,我们将排序后的数组元素输出到屏幕上。
在 quickSort() 函数中,我们使用递归算法来对数组进行排序。我们首先选择数组中的一个元素作为基准点(pivot),然后将数组划分为两个部分,其中左侧的元素小于等于基准点,右侧的元素大于基准点。然后,我们将基准点与右侧部分的第一个元素交换位置。接下来,我们将左侧部分和右侧部分分别递归地进行快速排序,直到数组完全排序为止。
注意,这个程序中,我们使用了一个固定大小为 1000 的数组。如果需要使用更大的数组,可以修改数组的大小。
阅读全文