C语言实现冒泡排序:输入n个数字并排序
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;
}
代码解释:
#include <stdio.h>:包含标准输入输出库的头文件,用于使用printf和scanf函数。void bubbleSort(int arr[], int n):定义一个名为bubbleSort的函数,用于对数组arr进行冒泡排序,n代表数组的长度。for (int i = 0; i < n-1; i++):第一个循环用于遍历数组,从第一个元素开始到倒数第二个元素。for (int j = 0; j < n-i-1; j++):第二个循环用于比较相邻的两个元素,从第一个元素开始到倒数第 i+1 个元素。if (arr[j] > arr[j+1]):如果当前元素大于下一个元素,则交换这两个元素。int main():程序的入口函数。printf('请输入数字个数n:');:提示用户输入数字个数。scanf('%d', &n);:读取用户输入的数字个数,并将其存储在变量n中。int arr[n];:定义一个大小为n的数组,用来存储用户输入的数字。printf('请输入%d个数字:', n);:提示用户输入n个数字。for (int i = 0; i < n; i++):循环读取用户输入的n个数字,并存储到数组arr中。bubbleSort(arr, n);:调用bubbleSort函数对数组arr进行冒泡排序。printf('排序后的结果为:');:输出排序后的结果提示信息。for (int i = 0; i < n; i++):循环遍历数组arr,并输出排序后的每个元素。
代码运行结果:
假设用户输入的数字个数为 5,输入的数字分别是 5, 2, 8, 1, 9,则程序输出的结果为:
排序后的结果为:1 2 5 8 9
总结:
本文介绍了使用 C 语言实现冒泡排序的方法,并提供了完整的代码示例。通过阅读本文,读者可以了解到冒泡排序的基本原理和实现步骤,并能够在实际项目中使用该算法进行排序。
注意:
冒泡排序是一种比较简单的排序算法,但是它的时间复杂度为 O(n^2),在数据量较大时效率较低。对于大规模数据的排序,建议使用其他效率更高的排序算法,例如快速排序或归并排序。
原文地址: http://www.cveoy.top/t/topic/d3VN 著作权归作者所有。请勿转载和采集!