有人能帮我解释一下 冒泡算法 意思么? 搞半天没弄懂
c#吧
全部回复
仅看楼主
level 5
int[] one={2,22,33,14,11,8};
for(int i=0;i<one.length-1;i++)
{
for(int j=0;j<one.length-1-i;j++)
{
if(one[j]>one[j+1])
{
int temp=one[j];
one[j]=one[j+1];
one[j+1]=temp;
}
}
}
2013年04月21日 01点04分 1
level 11
不知道这张图是否能让楼主明白
2013年04月21日 05点04分 2
这个我有,就是不太理解 我要的是 中文 解释!
2013年04月21日 05点04分
将n个元素看作按纵向排列,每趟排序时自下至上对每对相邻记录进行比较,每趟排序结束时都能使排序范围内最小的元素升到表上端的对应位置,整个排序过程共进行n-1趟,依次将元素最小、次小、第三小…的各个记录“冒到”表的第一个、第二个、第三个… 位置上。
2013年04月21日 05点04分
for(int i=0;i<one.length-1;i++)[$1]{[$1]for(int j=0;j<one.length-1-i;j++) 为什么要one.length-1 跟 one.length-1-i 这是什么意思
2013年04月21日 05点04分
回复@蜗牛快快跑8 :第一轮one[0]比one[1],one[1]比one[2]...到one[4]比one[5],这时最后一个数已经是最大的了,所以在第二轮里面直接比到one[4],也就是i-1了
2013年04月21日 06点04分
level 10
内循环,就是两两比较,把较大(小)的放前面去。第一轮先把最大(小)的数冒上去,第二轮是次大(小)的……。外循环,用来控制需要几轮循环。
最后排序就完成了。至于循环的次数,自己数数要比较多少次吧。
就像冒泡泡一样,所以叫冒泡算法
2013年04月21日 05点04分 3
level 11
其实你调试一下的话会特别清楚
2013年04月21日 07点04分 4
看懂了 谢谢啦[口水]
2013年04月21日 09点04分
回复@蜗牛快快跑8 :不客气[呵呵]
2013年04月21日 10点04分
1