在学习排序算法的过程中,冒泡排序(Bubble Sort) 是最基础也最经典的一种。尽管它在效率上不如快速排序或归并排序,但其简单直观的逻辑非常适合初学者掌握排序的基本概念。本文将介绍如何在 VC++6.0 环境下,使用 C语言 编写一个完整的冒泡排序程序。
✨ 什么是冒泡排序?
冒泡排序是一种交换排序,它通过重复比较相邻的两个元素,将较大的元素逐渐“冒泡”到数组的末尾,最终实现数组的升序或降序排列。
💡 冒泡排序的基本思路如下:
- 比较相邻的两个元素,如果前一个比后一个大,就交换它们的位置;
- 每一轮比较之后,最大的元素会“冒泡”到最后;
- 重复 n-1 轮,整个数组就被排序完成。
💻 程序实现(VC++ 6.0 兼容)
下面是一个使用 C语言标准语法 编写的冒泡排序程序,适用于 VC++6.0 环境。
✅ 完整代码如下:
#include <stdio.h>
#define SIZE 10 // 定义数组大小
void bubbleSort(int arr[], int n);
void printArray(int arr[], int n);
int main() {
int arr[SIZE] = {34, 12, 25, 9, 56, 44, 78, 3, 18, 50};
int i;
printf("排序前的数组:\n");
printArray(arr, SIZE);
bubbleSort(arr, SIZE);
printf("排序后的数组:\n");
printArray(arr, SIZE);
return 0;
}
// 冒泡排序函数
void bubbleSort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
// 交换两个元素
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 打印数组
void printArray(int arr[], int n) {
int i;
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
🧪 运行结果示例
排序前的数组:
34 12 25 9 56 44 78 3 18 50
排序后的数组:
3 9 12 18 25 34 44 50 56 78
🛠️ 在 VC++6.0 中创建工程的小提示:
如果你使用的是 VC++ 6.0,可以按以下步骤创建项目并运行:
- 打开 VC++ 6.0,选择
File > New > Projects; - 选择
Win32 Console Application类型; - 选择一个文件夹和工程名称;
- 添加一个
.c文件(例如main.c),将上述代码复制进去; - 使用
Build > Build xxx.exe编译项目; - 运行程序即可查看输出。
🔍 思考与扩展
你可以尝试:
- 修改数组大小和内容;
- 改成用户输入数组数据;
- 实现从大到小的排序;
- 添加判断语句优化排序(比如若某轮没有发生交换,则提前结束);
- 尝试其他排序算法并比较性能,比如插入排序、选择排序、快速排序等。
🧾 总结
通过本文,你学会了:
- 冒泡排序的基本原理;
- 如何在 VC++6.0 下编写并运行 C语言程序;
- 如何输出排序前后的结果进行验证。
冒泡排序虽然简单,但理解好它,是进入更复杂算法世界的重要一环。如果你是初学者,建议多动手敲代码、观察每一轮的变化,相信你很快就会掌握排序算法的精髓!
📌 下一步学习建议:尝试将冒泡排序封装成一个更通用的函数,接受动态长度的数组或指针操作,再向指针与内存管理进发!
如有任何问题或改进建议,欢迎留言交流~👋








网友评论