黑马程序员技术交流社区

标题: 浅谈对C语言中三中排序算法的理解---冒泡排序法 [打印本页]

作者: 邹志鹏    时间: 2014-12-5 10:55
标题: 浅谈对C语言中三中排序算法的理解---冒泡排序法
          三、冒泡排序法
        算法分析:如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次相邻元素的两两比较,在第j趟比较中要进行n-j次两两比较。比较的顺序从前往后,经过一趟比较后,将最值沉底(换到最后一个元素位置),最大值沉底为升序,最小值沉底为降序。
        算法特点:相邻元素两两比较,每趟将最值沉底即可确定一个数在结果的位置,确定元素位置的顺序是从后往前,其余元素可能作相对位置的调整。可以进行升序或降序排序。
        算法举例:
       for(j=0;j<9;j++)    //外循环控制排序趟数,n个数排n-1趟

    for(i=0;i<9-j;i++)   //内循环每趟比较的次数,第j趟比较n-j次

      if(a>a[i+1])    //相邻元素比较,逆序则交换

      { t=a;

        a=a[i+1];

        a[i+1]=t;

      }


作者: 励志入黑马    时间: 2014-12-5 11:30
总结的很好啊
作者: 丶有果灬    时间: 2014-12-5 12:30
这些东西太简单,我就不讲了!不过楼主继续加油!
作者: 邹志鹏    时间: 2014-12-5 13:42
丶有果灬 发表于 2014-12-5 12:30
这些东西太简单,我就不讲了!不过楼主继续加油!

谢谢,还请多多指教{:2_32:}
作者: 邹志鹏    时间: 2014-12-5 13:43

谢谢~~~:lol:lol
作者: 我爱吃丶柠檬    时间: 2014-12-5 14:48
外层循环n-1,内层循环n-1-i,记住这个就很好用了
作者: Leelisa    时间: 2014-12-5 16:20
对啊,我感觉楼主是不是写错了,不-1的话会超出长度啊




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