zl程序教程

您现在的位置是:首页 >  后端

当前栏目

冒泡排序算法

算法 冒泡排序
2023-09-11 14:20:19 时间

冒泡排序:**1,**整个排序序列划分为有序区和无序区,初始状态下有序区为空,无序区包含所有即将排序的数字。
2,在无序区中相邻的数字进行比较,逆序的则交换,顺序则往后移动即可,从前往后进行。
以下为代码

#include<stdio.h>
#define key 9//定义数组大小
void main()
{
	int  i, r[key],temp;
	int j ;
	for (i = 0; i < key; i++)
		scanf_s("%d", &r[i]);
	for (i = 0; i < key; i++)
	{
		for (j = 0; j <key - i-1; j++)
		/*将大的往后沉,沉完后就不用管沉过的数字了只需要管0--key-i这个区间*/
		if (r[j] > r[j + 1])//逆序交换,这里j+1,所以之前为key-i-1这样才不会越界
			{
				temp = r[j + 1];
				r[j + 1] = r[j];
				r[j] = temp;
			}
	}
	for (i = 0; i < key; i++)
		printf("%4d", r[i]);
}

运行样式

-9 6 3 45 -6 63 -98 2 -1
-98 -9 -6 -1 2 3 6 45 63
D:\数据结构\冒泡排序\Debug\冒泡排序.exe (进程 10100)已退出,代码为 0。
按任意键关闭此窗口. . .