冒泡排序

#include"stdio.h"
//冒泡排序
void bubbleSort(int a[],int len)
{
	int temp;
	int count=0;
	int inner=0,outer=0;
	if(NULL==a||0==len)
		return;
	for(outer=len-1;outer>=1;outer--)
	{
		for(inner=0;inner<outer;inner++)
		{
			if(a[inner]>a[inner+1])
			{
				temp=a[inner];
				a[inner]=a[inner+1];
				a[inner+1]=temp;
			
			 
			}
	
		}
		count++;
		printf("数据交换次数%d\n",count);
	
	}
	
}
//改进后的冒泡排序
void bubbleSort2(int a[],int len)
{
	int temp;
	int count=0;
	int inner=0,outer=0;
	int flag;
	if(NULL==a||0==len)
		return;
	for(outer=len-1;outer>=1&&flag;outer--)
	{
		flag=0;
		for(inner=0;inner<outer;inner++)
		{
			if(a[inner]>a[inner+1])
			{
				temp=a[inner];
				a[inner]=a[inner+1];
				a[inner+1]=temp;
				//如果扫一遍没有交换,说明已经排好序
				if(flag==0)
				  flag=1;
			
			 
			}
		
		
		}
	count++;
	printf("数据交换次数%d\n",count);
	}
	
}
void main()
{
	int arr[]={1,5,99,3,6,4,7,88,11,22,8,77};
	int arr2[]={1,2,4,6,7,88};
	int i;
	
	//冒泡排序
	printf("冒泡排序后的数组值\n");
	bubbleSort(arr,sizeof(arr)/sizeof(int));
	for(i=0;i<sizeof(arr)/sizeof(int);i++)
	{
		printf("%d \n",arr[i]);
	}

	//改进后的冒泡排序
	printf("改进冒泡排序后的数组值\n");
	bubbleSort2(arr,sizeof(arr)/sizeof(int));

	for(i=0;i<sizeof(arr)/sizeof(int);i++)
	{
		printf("%d \n",arr[i]);
	}

	getch();
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值