C 程序 按升序排列数字

  • Post category:C

如何用 C 语言编写程序按升序排列数字?

下面是一份完整的使用攻略,包含要点与示例程序:

实现思路

按升序排列数字,可以使用选择排序(Selection Sort)算法实现。

选择排序的基本思路是:

  1. 从数组中选择一个最小的元素,将其放到第一个位置;
  2. 从剩下的元素中选择一个最小的元素,将其放到第二个位置;
  3. 一直重复上述过程,直到全部元素都被排序。

示例程序

下面是一个示例程序,演示如何使用选择排序算法按升序排列数字:

#include <stdio.h>

void selection_sort(int arr[], int n) {
    int i, j, min_idx;

    // 遍历整个数组
    for (i = 0; i < n - 1; i++) {
        // 找到最小元素的下标
        min_idx = i;
        for (j = i + 1; j < n; j++) {
            if (arr[j] < arr[min_idx]) {
                min_idx = j;
            }
        }
        // 交换当前元素和最小元素
        int temp = arr[i];
        arr[i] = arr[min_idx];
        arr[min_idx] = temp;
    }
}

int main() {
    int arr[] = {10, 7, 8, 9, 1, 5};
    int n = sizeof(arr) / sizeof(arr[0]);

    selection_sort(arr, n);

    printf("Sorted array: ");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    return 0;
}

上面这个程序的输出是:

Sorted array: 1 5 7 8 9 10

说明

以上程序演示了如何使用选择排序算法按升序排列数字。

程序中的 selection_sort 函数实现了选择排序算法,接受要排序的数组和数组长度作为参数。

在 main 函数中,我们定义了一个测试数组,使用 sizeof 运算符求得数组长度并传递给 selection_sort 函数。

最后,打印按升序排列后的数组。

PS:请注意整个程序的排版美观,方便其他人阅读和理解。