C语言的困惑
我学到冒泡排序法了,但是总是不能自己理解原理,好像实在刻意地背诵似的,怎么办?是谁能帮我理解一下,用最通俗的语言说一下,谢了哈!...
我学到冒泡排序法了,但是总是不能自己理解原理,好像实在刻意地背诵似的,怎么办?是谁能帮我理解一下,用最通俗的语言说一下,谢了哈!
展开
3个回答
展开全部
一排苹果,要从小到大排
从首个开始往后,两个对比,大的继续跟下一个比,比到最后就找出最大的
回到首个,再次两个对比一遍,就找出第2大苹果
再回到首个,再次两个对比一遍,就找出第3大苹果。
....
直到剩2个,回到首个,再次两两比一遍,就找出2个中较大的苹果。
这样就从小到大排了,大的往前冒,所以叫冒泡
从首个开始往后,两个对比,大的继续跟下一个比,比到最后就找出最大的
回到首个,再次两个对比一遍,就找出第2大苹果
再回到首个,再次两个对比一遍,就找出第3大苹果。
....
直到剩2个,回到首个,再次两两比一遍,就找出2个中较大的苹果。
这样就从小到大排了,大的往前冒,所以叫冒泡
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-12-27
展开全部
跟数学的排列组合很像的。比如说10个数比较
for(i=0;i<10;i++)// i=0 把第一个数拿初来
{
for(j=0;j<10-i-1;j++)//拿剩下的9个数与其比较,选出最大或最小的数
{
t=a;
a=b;
b=t;
}//交换,之后 , i=1,j=10-1-1=8,就是除去选出的最大或最小的数后 拿剩下9个数中的第一个数与其余8个数比较,以此类推
}
仅供参考,其实记住格式多用用就明白了 或者找些题看看其用法
for(i=0;i<10;i++)// i=0 把第一个数拿初来
{
for(j=0;j<10-i-1;j++)//拿剩下的9个数与其比较,选出最大或最小的数
{
t=a;
a=b;
b=t;
}//交换,之后 , i=1,j=10-1-1=8,就是除去选出的最大或最小的数后 拿剩下9个数中的第一个数与其余8个数比较,以此类推
}
仅供参考,其实记住格式多用用就明白了 或者找些题看看其用法
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询