C语言数组排序与格式化输出详解214


C语言本身并不提供直接的“整列输出”功能,所谓“整列输出”通常指的是对数组或其他数据结构中的元素进行排序,然后以某种格式整齐地打印输出。 这需要结合排序算法和格式化输出函数来实现。本文将详细讲解如何在C语言中实现数组的排序以及如何以整齐的格式输出结果,并涵盖多种排序算法和输出格式的示例。

一、数组排序

C语言中常用的排序算法包括冒泡排序、选择排序、插入排序、快速排序、归并排序等。选择哪种算法取决于数据的规模和性能要求。以下以冒泡排序和快速排序为例进行说明。

1. 冒泡排序 (Bubble Sort)

冒泡排序是一种简单易懂的排序算法,其原理是重复地走访待排序的元素列,一次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。走访元素列的工作是重复地进行直到没有再需要交换,也就是说该元素列已经排序完成。```c
#include
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 交换 arr[j] 和 arr[j+1]
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, n);
printf("排序后的数组:");
for (int i = 0; i < n; i++)
printf("%d ", arr[i]);
printf("");
return 0;
}
```

2. 快速排序 (Quick Sort)

快速排序是一种高效的排序算法,其平均时间复杂度为O(n log n)。其核心思想是选择一个基准元素,将数组划分成两部分:小于基准元素的元素和大于基准元素的元素。然后递归地对这两部分进行排序。```c
#include
void quickSort(int arr[], int low, int high) {
if (low < high) {
int pivot = arr[high]; // 选择最后一个元素作为基准
int i = (low - 1);
for (int j = low; j

2025-04-02


上一篇:C语言printf函数实现精确输出对齐

下一篇:C语言put函数详解:字符输出及其实现原理