冒泡排序和选择排序有什么区别?

 我来答
爱生活的翟先森
2018-01-02 · TA获得超过163个赞
知道答主
回答量:50
采纳率:0%
帮助的人:35.5万
展开全部
找排序的区别,一定要动手(用笔,不是电脑)去执行代码,不用问你也可以看出代码怎么排的,而且你自己对这问题的理解也更加深刻,问人的话说不定哪天你又忘了,说不定还把两种给搞反了。我下面手写给你解释一下代码,你动手去画一下。
为了方便思考,数组零位置我没用
选择排序(从小到大,每次将a[i]到a[n]中最小的值找到,并放到a[i]处)
for(i=1;i<=n;i++) //a[i[是我们当前要确定的数,这样的数有n个(即数组长度)
{
k=i; //k用来待会记录较小的数的位置
for(j=i+1;j<=n;j++) //将a[i]依次与后面的数比较,最后把最小的数交换到a[i]

{
if(a[j]<a[k])
k=j;
}

temp=a[k]; //k存的就是最终最小的数的位置,把最小的数交换到a[i]

a[k]=a[i];

a[i]=temp;

}

冒泡排序(顺着两两比较,最终最大的数被比较的最后位置,最终达到从小到大顺序)
for(i=1;i<n;i++) //这里n为比较次数,n个数,比较n-1次,最后一个数自然是最小的
for(j=1;j<=n-i+1;j++) //每次比较,后面比较好的数就不用再比较了

//n-i+1怎么来的?当i=1时,第一次比较肯定包括a[n],用这个特殊情况来写。
{
if(a[j]>a[j+1])
{
temp=a[j]; //把相邻两个数据比较出的较大的值换到后面
a[j]=a[j+1];
a[j+1]=a[j]
}
}
代码为手写,可能有错误,但大致思想就是这样,希望能帮到你。
TableDI
2024-07-18 广告
`VLOOKUP` 函数在 Excel 中通常是基于单个查找值在表的首列中进行查找,并返回相应行的某个单元格的值。但直接使用 `VLOOKUP` 来根据两个条件进行匹配是不可行的。然而,可以通过一些技巧来实现基于两个条件的查找,比如结合使用... 点击进入详情页
本回答由TableDI提供
勤音府初之
2020-05-31 · TA获得超过3839个赞
知道大有可为答主
回答量:3135
采纳率:34%
帮助的人:436万
展开全部
选择排序是冒泡排序的一个延伸版本,同时跟二分查找法有类似的思想。具体你好好看看殷人昆的数据结构。这种东西大二就该学了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式