📄 双向冒泡排序.cpp
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -