C语言使用快速排序算法对序列{49,38,65,97,49,13,27,76}进行从小到大排序,并且输出每一趟排序的结果。
时间: 2023-09-29 12:07:26 浏览: 34
好的,这是使用C语言实现快速排序算法对序列{49,38,65,97,49,13,27,76}进行从小到大排序,并输出每一趟排序结果的示例代码:
```c
#include <stdio.h>
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int partition(int arr[], int low, int high) {
int pivot = arr[low];
int i = low;
int j = high + 1;
while (1) {
do {
i++;
} while (arr[i] < pivot && i <= high);
do {
j--;
} while (arr[j] > pivot);
if (i >= j) {
break;
}
swap(&arr[i], &arr[j]);
}
swap(&arr[low], &arr[j]);
return j;
}
void quickSort(int arr[], int low, int high) {
if (low < high) {
int pivot = partition(arr, low, high);
printf("Sorting: ");
for (int i = low; i <= high; i++) {
printf("%d ", arr[i]);
}
printf("\n");
quickSort(arr, low, pivot - 1);
quickSort(arr, pivot + 1, high);
}
}
int main() {
int arr[] = {49, 38, 65, 97, 49, 13, 27, 76};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Original array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
quickSort(arr, 0, n - 1);
printf("Sorted array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
运行以上代码,将会输出每一趟排序的结果,最终得到排序后的数组。
请注意,以上代码仅为示例,实际使用时可能需要根据具体情况进行调整和优化。
如果还有其他问题,请随时提问!
阅读全文