常用排序方法,冒泡法排序,C语言冒泡排序从小到大排序,从大到小排序思路详解和过程提示,计算机二级重点

常用排序方法中较为简单的有冒泡排序和选择排序

想要了解选择排序可以去:常用排序方法,选择法排序,C语言选择排序从小到大排序,从大到小排序思路详解和过程提示,计算机二级重点_Eliauk1234的博客-CSDN博客

这篇我们来介绍冒泡排序法

介绍:

冒泡排序的基本思想 冒泡排序是交换排序中一种简单的排序方法。

可以简单理解为将最大值或者最小值向上冒泡也就是向上浮
 
它的基本思想是对所有相邻记录的关键字值进行比效,如果是逆顺(a[j]>a[j+1]),则将其交换,最终达到有
序化

思路:

将相邻两个数进行比较,将小(大)的值调换到前面;

如果有N个数,需要进行N-1趟比较

在一趟中需要进行N-1次两两比较,在第j趟中要进行N-j次两两比较

过程提示:

①通过动态赋值的方式让用户输入10个待排序的数字,通过数组保存起来

②掌握两个循环,外层循环限制有多少趟比较,内层循环限制某趟比较要进行两两比较的次数

③如果a[i]>a[i+1],则将两数交换,因为要求从小到大排序(反之思路一样)

④输出结果

下面看详细代码

#include <stdio.h>
#define N 10
int main()
{

	int a[N];//存放十个数字 
	int i,j,t;
	printf("请输入%d个数:\n",N);	
	for(i=0;i<N;i++)
		scanf("%d",&a[i]); 
	printf("\n");
	for(j=0;j<9;j++)//需要比较几趟
	{
		for(i=0;i<9-j;i++)//一趟中需要比较几次
		{
			if(a[i] > a[i+1])//相邻两数比较
			{
				t = a[i];
				a[i] = a[i+1];
				a[i+1] = t;//两数调换位置
			}
		}
	} 
	printf("排序后的数字:\n");
	for(i=0;i<N;i++)
		printf("%d ",a[i]);
	printf("\n");
	return 0;
} 

我是虎哥,大家互相学习多交流

猜你喜欢

转载自blog.csdn.net/Eliauk1234/article/details/121452586
今日推荐