黑马程序员技术交流社区

标题: 关于冒泡排序,有来教教的么 [打印本页]

作者: yuxuan3705    时间: 2016-9-6 19:46
标题: 关于冒泡排序,有来教教的么
#include <stdio.h>

int main(void)
{
    int number[10];
    int i,j,temp;
    printf("Please input 10 numbers:\n");
    for(i = 0; i < 10; i++)
        scanf("%d",&number[i]);
    for(i = 0; i < 10; i++)
        for(j = 0; j < 10-i-1; j++)
            if(number[j] > number[j+1])
            {   
                temp = number[j];
                number[j] = number[j+1];
                number[j+1] = temp;
            }   
    printf("The sorted numbers:\n");
    for(i = 0; i < 10; i++)
        printf("%d ",number[i]);
    printf("\n");
    return 0;
}
作者: wangdou    时间: 2016-9-6 19:51
你要问啥问题啊?
作者: yuxuan3705    时间: 2016-9-6 20:13
wangdou 发表于 2016-9-6 19:51
你要问啥问题啊?

都讲解一下呗  不知道咋回事
作者: 爷^周晨    时间: 2016-9-6 20:20
你这代码我看着感觉有点问题?你的变量声明的有些无意义
作者: iamsongxuanlike    时间: 2016-9-6 20:20
冒泡排序跟选择排序的区别就在于,内层循环的比较
作者: yuxuan3705    时间: 2016-9-6 20:28
爷^周晨 发表于 2016-9-6 20:20
你这代码我看着感觉有点问题?你的变量声明的有些无意义

这个代码也是我在别的地方粘过来的 但是能运行.我没看懂就是
作者: itcoder    时间: 2016-9-6 20:39
第二个for里面的应该是i < 10 - 1 吧!
作者: wangqiang1    时间: 2016-9-6 20:55
求大神罩啊求大神罩啊求大神罩啊
作者: changfa    时间: 2016-9-6 22:19
冒泡排序关键看for(i = 0; i < arr.length -1; i++) 和for(i = 0; i < arr.length-1-i; i++) 两个的嵌套  还有也得之一做比较的时候注意一下是前一个和后一个加1 定义临时变量进行交换就ok了
作者: 1871037345    时间: 2016-9-6 22:37
这东西语言描述太麻烦,还是看视频吧,应该是基础视频第八天的,如意大师讲的那个,一看就明白,总之思想就是:内层让相邻两个元素想比较,把大的放在后面,如下标为 1 和 2,然后是  2  和 3,10个数就是比较 9次,第二次再比较就是 9 个数,就是比较 8 次,每次内层循环结束 就会有一个最大的数放在没排序的元素的最后。外层就控制内层循环的次数,10 个数就循环 9 次,剩下一个数就不用管了(把9 个大数都排好了,最后一个也是最小的一个,自然就有序了),此时已经完成了,希望能帮到你,关键还是自己能想通
作者: yuxuan3705    时间: 2016-9-7 05:28
1871037345 发表于 2016-9-6 22:37
这东西语言描述太麻烦,还是看视频吧,应该是基础视频第八天的,如意大师讲的那个,一看就明白,总之思想就 ...

恩.谢谢啦
作者: 爷^周晨    时间: 2016-9-7 08:58
yuxuan3705 发表于 2016-9-6 20:28
这个代码也是我在别的地方粘过来的 但是能运行.我没看懂就是

好吧,你先看看数组的遍历公式就明白了.
作者: mynsoo    时间: 2016-9-7 13:12
我看着没有问题啊。
作者: baihongguang10    时间: 2016-9-7 20:06
这个背下来就行了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2