用C++怎么编写冒泡排序法?

 我来答
wj1527603534
推荐于2019-08-26 · TA获得超过130个赞
知道答主
回答量:36
采纳率:0%
帮助的人:25.4万
展开全部
给你三种方法 不明白的话再联系我:
1. 用起泡法把数组中的数从大到小排列
方法一:
#include <iostream>
using namespace std;
int main()
{
int a[10];
int i,j;
cout<<"请输入各个数字:"<<' ';
for(i=0;i<10;i++)
cin>>a[i];
for(j=1;j<10;j++)//进行n-1次循环,n-i趟比较
for(i=0;i<10-j;i++)//每趟进行n-i-j次比较
{ if(a[i]>a[i+1])//相邻两数进行比较
{
int t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}

}
for(i=0;i<10;i++)
cout<<a[i]<<' ';
cout<<endl;
return 0;
}

问题:注意i的条件

方法二
#include <iostream>
using namespace std;
int main()
{
int i,j,a[10]={54 ,7 ,8 ,93, 4 ,33 ,6 ,12 ,28, 0};
//定义数组a【】并初始化各值
for(j=1;j<10;j++)
for(i=0;i<=9-j;i++)
{
if(a[i]>a[i+1])
//对相邻两数进行比较,如果条件成立,交换两数的值,
{
int t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}

}
for(i=0;i<10;i++)
cout<<a[i]<<' ';
cout<<endl;
return 0;
}

方法三
#include <iostream>
using namespace std;
int main()
{
int a[100];
int n,i,j;
cout<<"请输入要比较的数字个数:"<<' ';
cin>>n;
cout<<"请输入各个数字:"<<' ';
for(i=0;i<n;i++)
cin>>a[i];
for(j=1;j<n-1;j++)//进行n-1次循环,n-i趟比较
for(i=0;i<n-j;i++)//每趟进行n-i-j次比较
{
if(a[i]>a[i+1])//相邻两数进行比较
{
int t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}

}
for(i=0;i<n;i++)
cout<<a[i]<<' ';
cout<<endl;
return 0;
}
mauree9
2021-05-21
知道答主
回答量:54
采纳率:0%
帮助的人:4.2万
展开全部

给大家介绍冒泡排序的Scratch做法

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式