黑马程序员技术交流社区
标题:
自学基础课程,冒泡排序法不明白,请师兄们指教,谢谢
[打印本页]
作者:
王彦伟
时间:
2012-12-9 16:48
标题:
自学基础课程,冒泡排序法不明白,请师兄们指教,谢谢
今天刚听了冒泡排序法这一节课,感觉很迷茫,有点晕,请各位师兄们指教
作者:
Jam
时间:
2012-12-9 19:45
每次比较相邻两位数的值 最大的就放在右边 比较到最后 就实现冒泡了 能理解中文的意思 代码就好实现了
作者:
马海保
时间:
2012-12-9 19:55
本帖最后由 马海保 于 2012-12-9 20:20 编辑
int[] scores = new int[5]; //成员数组
int i, j; //循环变量
int temp; //临时变量
Console.WriteLine("请输入5个学员的成绩:");
for (i = 0; i < 5; i++)
{
Console.WriteLine("请输入第{0}个学员的成绩:", i+1);
scores
= int.Parse(Console.ReadLine()); //类型转换
}
//开始排序--使用冒泡排序
for (i = 0; i < scores.Length - 1 ; i++)
{
//将最大的元素交换到最后
for (j = 0; j < scores.Length - 1-i; j++)
{
if (scores[j] > scores[j + 1])
{
//交换元素
temp = scores[j];
scores[j] = scores[j + 1];
scores[j + 1] = temp;
}
}
}
for (i = 0; i < 5; i++)
{
Console.WriteLine(scores
);
}
Console.ReadLine();
作者:
邵帅
时间:
2012-12-9 19:55
以此比较相邻的两个元素,每次比较完毕最大的一个字跑到本轮的末尾。 目的:按从小到大排序。假设存在数假设存在数组:10,9,8, 7, 6, 5,4,3, 2, 1
第一轮比较相邻两个元素,如果左边元素大于右边元素,则交换。
10和9比较的结果就是,9在前,10在后;
然后10和8比较的结果,8在前,10在后;
以此类推,第一轮比较之后的结果是:9, 8, 7, 6 5, 4, 3, 2 1, 10
经过第一轮比较,最大的元素跑到了最后一个,所以第二轮比较,最后一个元素不需要进行比较了。
第二轮还是从索引0和1开始比较,只是不许要比较最后一个了,算法还是一样的。第三轮、第四轮以此类推。
排序之后的结果:1, 2, 3, 4, 5,6, 7, 8, 9, 10;
作者:
王彦伟
时间:
2012-12-9 20:07
谢谢大家的指教,我会好好理解下的
作者:
汪磊
时间:
2012-12-9 22:22
你可以这么理解, 就像做操时候排队一样, 先随便站成一对, 然后从第一个人开始,你比后面人高的话你就站到这个人后面
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2