C历程-数据结构- C语言实现冒泡排序(Bubble Sort)

C历程-数据结构- C语言实现冒泡排序(Bubble Sort),第1张

在总结冒泡排序前:先从头开始,对冒泡排序(BubbleSort)进行一个系统性了解:

冒泡排序法,又称交换排序法,是从观察水中的气泡变化构思而成的,原理是从第一个元素开始,比较相邻元素的大小,如果大小顺序不对,则进行两个数据的调换,就好像气泡从水中逐渐上升到水面上一样。经过这样的扫描,就可以一次接着一次的排序,直到完成所有元素的排序工作。

如图,我使用5个元素:14,11,25,18,44来进行冒泡排序法的演示:

为了更直观的体现冒泡多次排序,再换一组数据进行排序 55,23,87,62,16:

如何通过数学的方式进行表达呢?

原理已经基本清楚,将思路代码化: 

#include
#include
void Bubble_sort(int array[], int n)//定义排序函数
{
	int j = 0;
    int I = 0;
    int temp;
	for (i = 0; i < n-1;i ++){//与除自己以外的其他9个元素进行比较
		for (j = 0; j < n-1 - i; j++)//n-1-i的意思是每比较一趟元素就会少一个
		{
			if (array[j] > array[j+1])//升序排法,如果前面的数大于后面的数,即调换位置
			{
				temp = array[j];
				array[j] = array[j+1];
				array[j+1] = temp;
			}
		}
	}
}
int main()
{
	int array[10];
	int i;
	printf("请输入10个数\n");
	for (i = 0; i < 10; i++){//接收用户在终端中输入的数值,并添加进数组。
		scanf("%d", &array[i]);
	}
	printf("选择排序前的各元素是:");
	for (i = 0; i < 10; i++){
		printf("%d ", array[i]);
	}
	printf("\n经过冒泡排序后的数组是:");
	Bubble_sort(array, 10);
	for (i = 0; i < 10; i++){
		printf("%d ", array[i]);
	}
	return 0;
}

如图,我输入十个数据:10,9,8,7,6,5,4,3,2,1

输出完成 

如图,从程序的执行结果来,冒泡排序已经执行完毕,并且把数组中的十个元素从小到大排序了出来。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1325150.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-12
下一篇2022-06-12

发表评论

登录后才能评论

评论列表(0条)

    保存