C语言实现冒泡排序:输入n个数字并排序

本文将介绍如何使用 C 语言实现冒泡排序,并提供一个完整的代码示例,方便读者学习和理解。

**需求:**输入一个整数 n,代表需要排序的数字个数,然后输入 n 个数字,使用冒泡排序算法对这些数字进行排序,最后输出排序后的结果。

代码示例:

#include <stdio.h>

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]) {
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}

int main() {
    int n;
    printf('请输入数字个数n:');
    scanf('%d', &n);
    
    int arr[n];
    printf('请输入%d个数字:', n);
    for (int i = 0; i < n; i++) {
        scanf('%d', &arr[i]);
    }
    
    bubbleSort(arr, n);
    
    printf('排序后的结果为:');
    for (int i = 0; i < n; i++) {
        printf('%d ', arr[i]);
    }
    
    return 0;
}

代码解释:

  1. #include <stdio.h>:包含标准输入输出库的头文件,用于使用 printfscanf 函数。
  2. void bubbleSort(int arr[], int n):定义一个名为 bubbleSort 的函数,用于对数组 arr 进行冒泡排序,n 代表数组的长度。
  3. for (int i = 0; i < n-1; i++):第一个循环用于遍历数组,从第一个元素开始到倒数第二个元素。
  4. for (int j = 0; j < n-i-1; j++):第二个循环用于比较相邻的两个元素,从第一个元素开始到倒数第 i+1 个元素。
  5. if (arr[j] > arr[j+1]):如果当前元素大于下一个元素,则交换这两个元素。
  6. int main():程序的入口函数。
  7. printf('请输入数字个数n:');:提示用户输入数字个数。
  8. scanf('%d', &n);:读取用户输入的数字个数,并将其存储在变量 n 中。
  9. int arr[n];:定义一个大小为 n 的数组,用来存储用户输入的数字。
  10. printf('请输入%d个数字:', n);:提示用户输入 n 个数字。
  11. for (int i = 0; i < n; i++):循环读取用户输入的 n 个数字,并存储到数组 arr 中。
  12. bubbleSort(arr, n);:调用 bubbleSort 函数对数组 arr 进行冒泡排序。
  13. printf('排序后的结果为:');:输出排序后的结果提示信息。
  14. for (int i = 0; i < n; i++):循环遍历数组 arr,并输出排序后的每个元素。

代码运行结果:

假设用户输入的数字个数为 5,输入的数字分别是 5, 2, 8, 1, 9,则程序输出的结果为:

排序后的结果为:1 2 5 8 9

总结:

本文介绍了使用 C 语言实现冒泡排序的方法,并提供了完整的代码示例。通过阅读本文,读者可以了解到冒泡排序的基本原理和实现步骤,并能够在实际项目中使用该算法进行排序。

注意:

冒泡排序是一种比较简单的排序算法,但是它的时间复杂度为 O(n^2),在数据量较大时效率较低。对于大规模数据的排序,建议使用其他效率更高的排序算法,例如快速排序或归并排序。

C语言实现冒泡排序:输入n个数字并排序

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

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