冒泡排序--------(C每日一题)

2023-12-27 14:43:22
冒泡排序:
每次将相邻的两个数比较,将小的调到前头--升序
冒泡排序一个结论:
n个数要进行n-1轮比较,第j轮要进行n-j次两两比较

循环体代码:

int main() {
	int i, j,n,a[10],t;//n是几个数比较
	for(j=1;j<=n-1;j++)//控制轮次
		for(i=0;i<n-j;i++)//内循环控制谁和谁比较
			if (a[i] > a[i + 1])
			{
				t = a[i]; a[i] = a[i + 1]; a[i + 1] = t;
			}
}

一,用冒泡法将10个整数由大到小排序

int main() {
	int i, j, t, a[10];
	for (i = 0; i < 10; i++)
		scanf("%d",&a[i]);
	for(i=0;i<9;i++)
		for(j=0;j<9-i;j++)
			if(a[j]<a[j+1])
			{
				t = a[j];
				a[j] = a[j + 1];
				a[j + 1] = t;
			}
	for(i=0;i<10;i++)
	printf("%d ", a[i]);
	return 0;
}

以上总结:n个数,n-1趟
? ? ? ? ? ? ? ? ? 第1趟? n-1次比较
? ? ? ? ? ? ? ? ??第2趟? n-2次比较
? ? ? ? ? ? ? ? ??第3趟? n-3次比较
? ? ? ? ? ? ? ? ? ...
? ? ? ? ? ? ? ? ??第n-1趟? 1次比较

以上仅供参考。

? ? ? ? ?

文章来源:https://blog.csdn.net/weixin_64545778/article/details/135234090
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。