⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bubble.c

📁 双向冒泡排序
💻 C
字号:
#include <stdio.h>

//数组大小
#define N 10		

//函数功能:双向冒泡从小到大排序
void main()
{
	//要排序数组
	int aiA[N];
	int i;
	int j;
	int temp;

	//交换标志,为零表示没有发生交换
	int flag = 0;
	printf("Pleae input the array :");
	for( i = 0; i<N; i++ )
	{
		scanf("%d",&aiA[i]);
	}
	printf("\n");

	//外层for循环控制趟数 
	for( i = 0; i<N/2; i++ )
	{
		//正方向排序
		for(  j = i; j<N-i-1; j++ )
		{
			//如果后面原素小于前面元素,则交换,置标志位flag为1
			if(aiA[j+1]<aiA[j])
			{
				temp = aiA[j];
				aiA[j] = aiA[j+1];
				aiA[j+1] = temp;
				flag = 1;
			}
		}
		if(0 == flag)
		{
			break;
		}

		//负方向排序
		while( j>i )
		{
			//如果后面原素小于前面元素,则交换,置标志位flag为1
			if(aiA[j]<aiA[j-1])
			{
				temp = aiA[j];
				aiA[j] = aiA[j-1];
				aiA[j-1] = temp;
				flag = 1;
			}
			j--;
		}
		if(0 == flag)
		{
			break;
		}
	}
	
	//输出排序后的数组
	for( i = 0; i<N; i++ )
	{
		printf("%d,",aiA[i]);
	}
	//printf("\n%d\n",n);

}
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -