C语言实现正整数降序排序:选择、冒泡、插入排序

本示例代码演示了如何使用C语言实现正整数降序排序,并提供了三种常用的排序算法:选择排序、冒泡排序和插入排序,供您选择使用。

问题描述:

输入一个正整数n(1 <n≤10),再输入n个整数,将它们从大到小排序后输出。(利用教材中介绍的选择、冒泡、插入排序中的一个算法完成排序操作)

输入形式:

从键盘输入一个正整数n和n个整数。每个整数按照%4d格式输出,输出结束没有换行符。

代码示例:

#include <stdio.h>

// 选择排序
void selectionSort(int arr[], int n) {
    int i, j, max, temp;
    for (i = 0; i < n-1; i++) {
        max = i;
        for (j = i+1; j < n; j++) {
            if (arr[j] > arr[max]) {
                max = j;
            }
        }
        if (max != i) {
            temp = arr[i];
            arr[i] = arr[max];
            arr[max] = temp;
        }
    }
}

// 冒泡排序
void bubbleSort(int arr[], int n) {
    int i, j, temp;
    for (i = 0; i < n-1; i++) {
        for (j = 0; j < n-i-1; j++) {
            if (arr[j] < arr[j+1]) {
                temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}

// 插入排序
void insertionSort(int arr[], int n) {
    int i, j, key;
    for (i = 1; i < n; i++) {
        key = arr[i];
        j = i-1;
        while (j >= 0 && arr[j] < key) {
            arr[j+1] = arr[j];
            j = j-1;
        }
        arr[j+1] = key;
    }
}

int main() {
    int n;
    printf('请输入正整数n:');
    scanf('%d', &n);
    
    int arr[n];
    printf('请输入%d个整数:', n);
    for (int i = 0; i < n; i++) {
        scanf('%4d', &arr[i]);
    }
    
    // 使用选择排序
    selectionSort(arr, n);
    
    // 使用冒泡排序
    // bubbleSort(arr, n);
    
    // 使用插入排序
    // insertionSort(arr, n);
    
    printf('排序后的结果为:');
    for (int i = 0; i < n; i++) {
        printf('%4d', arr[i]);
    }
    
    return 0;
}

代码说明:

  1. 该代码包含三个排序算法的实现:selectionSortbubbleSortinsertionSort
  2. 默认情况下,代码使用选择排序算法进行排序。
  3. 您可以通过取消注释 bubbleSortinsertionSort 函数调用来选择使用其他排序算法。
  4. 代码中包含了详细的注释,方便理解代码的逻辑和功能。

运行方法:

  1. 将代码保存为 .c 文件,例如 sort.c。
  2. 使用 GCC 编译器编译代码:gcc sort.c -o sort
  3. 运行编译后的程序:./sort

程序会提示您输入正整数 n 和 n 个整数,并最终输出排序后的结果。

学习建议:

  1. 仔细阅读代码注释,理解每个排序算法的实现原理。
  2. 尝试修改代码,例如改变排序方式(升序或降序)、更改排序算法等。
  3. 比较三种排序算法的效率,并尝试分析其时间复杂度。

通过学习和实践,您可以更深入地理解排序算法的实现和应用。

C语言实现正整数降序排序:选择、冒泡、插入排序

原文地址: http://www.cveoy.top/t/topic/phKv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录