(VS2010)C语言浅尝冒泡排序

实验目的

尝试对示例数组进行冒泡排序,最终输出升序数组

实验要点

冒泡排序算法原理:

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。

  2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

  3. 针对所有的元素重复以上的步骤,除了最后一个。

  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

实验步骤

1.打开VS2010,创建新项目,选择空项目并命名,在源文件中添加新建项,选择C++文件并命名,后缀为.cpp

2.敲代码时先写出基础框架

# include <stdio.h>
 
int main()
 
{
 
return 0;
 
}

3.在纸上写出大致思路:定义一个数组(示例为a[6] = {3, 4, 7, -2, -11, 8}),定义一个被调函数(示例为sort函数,实参为a[0]地址和数组长度6),再定义被调函数中的形参(示例为aArr和len),根据冒泡排序算法定义三个变量(i, j, k),i每循环一次即找出最大数并排序,j每循环一次即比较相邻两个数的值,若比较的第二个数比第一个数小则互换,代码如下:

# include <stdio.h>

//冒泡排序
void sort(int * aArr,int len)//被调函数,定义数组指针变量和数组长度
{
	int i,j,k;
	for(i = 0;i < len-1;++i)//两两比较,较大者放后面,每循环一次就能找出一个最大值并排序
	{
		for(j = 0;j < len-i-1;++j)
		{
			if(aArr[j] > aArr[j+1])//升序
			{
				k = aArr[j];
				aArr[j] = aArr[j + 1];
				aArr[j + 1] = k;//互换两个数
			}
		}
	}
	return;
}

//主函数
int main()
{
	int a[6] = {3, 4, 7, -2, -11, 8};//示例数组
	int i;
	sort(a, 6);//调用函数
	for(i = 0;i < 6;++i)
		printf("%d ",a[i]);//输出排序后的数组
	return 0;
}

4.实验结果(若运行时cmd没有显示且没有报错,可以右键点击总工程名,点击属性,修改链接器下的系统中的子系统,选择控制台 (/SUBSYSTEM:CONSOLE)然后应用确定):

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YGP54ix5pma6aOOeA==,size_20,color_FFFFFF,t_70,g_se,x_16

 

实验小结

刚开始听郝斌老师讲冒泡排序有一点懵,但是边思考边写出代码再一步步修改错误的过程让我收获颇多,学习代码思想、多敲代码、多试错会使自己掌握更加清晰牢固

冒泡排序算法原理参照链接:冒泡排序_百度百科 (baidu.com)https://baike.baidu.com/item/%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F/4602306

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值