冒泡排序

1.第1个和第2个关键字比较,若第1个大那么这两个数交换。
2.第2个和第3个关键字比较,若第3个大那么这两个数交换。
3.第3个和第4个关键字比较,若第4个大那么这两个数交换。
……

n个数据的数组,最多走n-1趟

举个栗子: 我进行一个6个数据数组的冒泡排序

void Bubblesort(int R[],int n)
{
	int i,j,temp,flag;
	for(i=n-1;i>=1;--i)
	{
		flag=0;//flag来标记本趟排序是否发生交换
		for(j=1;j<=i;++j)
		{
			if(R[j-1]>R[j])
			{
				temp=R[j];
				R[j]=R[j-1];
				R[j-1]=temp;
				flag=1;
			}
		}
		if(flag==0)//没有关键字的交换则有序结束,跳出循环
		{
			return;
		}
	}
}

主函数

int main()
{
	int n=6;
	int R[6];
	printf("输入6个数进行冒泡排序:\n");
	for(int i=0;i<=5;++i)
	{
		scanf("%d",&R[i]);
	}
	Bubblesort(R,n);
	printf("输出冒泡排序后的顺序:\n");
	for(i=0;i<=5;++i)
	{
		printf("%d ",R[i]);
	}
	return 1;
}

运行结果

C语言的冒泡排序_数组


C语言的冒泡排序_数组_02

ok,没问题很简单!