双向冒泡排序.cpp

来自「共有10个文件代码」· C++ 代码 · 共 44 行

CPP
44
字号
#include <iostream.h>
void maopao(int r[],int n)
{
	int flag=1;   //继续遍历时为1,已排序好不需继续遍历时为0
	int i=0,j,temp;
	while(flag==1)
	{
		flag=0;
		for(j=n-i-1;j>=i+1;j--)     //反向找最小的
			if(r[j]<r[j-1])
			{
				flag=1;
				temp=r[j];
				r[j]=r[j-1];
				r[j-1]=temp;
			}
		for(j=i+1;j<n-1;j++)        //正向找最大的
			if(r[j]>r[j+1])
			{
				flag=1;
				temp=r[j];
				r[j]=r[j+1];
				r[j+1]=temp;
			}
			i++;
	}
}
void main()
{
	int n=10,A[10],i;
	cout<<"请输入您所需排序的无序序列(10个数据):";
	for(i=0;i<n;i++)
		cin>>A[i];
	cout<<"冒泡排序"<<endl<<"排序前:";
	for(i=0;i<n;i++)
		cout<<A[i]<<" ";
	cout<<endl;
	maopao(A,n);
	cout<<"经过排序后:";
	for(i=0;i<n;i++)
		cout<<A[i]<<" ";
	cout<<endl;
}

⌨️ 快捷键说明

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