数组应用--冒泡排序

例题:

将一组整数从大到小排列

思路:

冒泡排序的功能----排序,俩俩比较,交换位置。
重点弄清楚它是几趟,每趟比较几次----采用for循环

代码:

#include<stdio.h>
void mppx(int arr[], int n)
{
	int i = 0;
	for (i = 0; i < n - 1; i++)
	{
      //int flag=1;
		int j = 0;
		for(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;
              flag=0;
			}
			
 
		}
          // if (flag == 1)
				//break;

	}
}
int main()
{
	int arr[] = { 9,8 ,7,2,5,6,19,17,16,20 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	int i = 0;
	mppx(arr, sz);
	for (i = 0; i < sz; i++)
		printf("%d ", arr[i]);
}

关键点:

1.sizeof(数组名)是计算整个数组的大小

2.关于for循环中中间条件的设置–冒泡排序中一个常见的写法对一个不断变化的量—我代码中的那个i–利用n-i

3.一个改进点:

如果本身是一个满足条件的从大到小排的一组数,那么同样采用这样俩俩对比的方法来排那就有一点小死板,可以稍做改进,在内部加入flag以确定这一趟是否需要多次俩俩比较(也就是以上代码中//后面内容)

4.传入函数的时候,得告诉它是数组–int arr【】–这个方块不能少(我开始就这里出问问问题)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值