美文网首页
冒泡排序

冒泡排序

作者: Day_Winston | 来源:发表于2018-01-10 22:30 被阅读9次

冒泡排序

冒泡排序想将于桶排序,更为节省空间,对于跳跃幅度比较大的数不必去申请许多空间来进行比较。
冒泡排序的基本思想是:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。

  • 例子1:现在有 12,35,99,100,111;把这5个数进行从大到小进行比较,我们只需要两两进行比较然后交换就可以了,简单说就是12和35比较谁大,很明显35大,交换它们的位置,现在就变成了35,12,99,100,111了,然后12再和99进行比较,99比12大,交换后变成35,99,12,100,111,然后按照刚才方法继续比较下去,再经过两次比较后就变成了35,99,100,111,12,现在12到最后了,注意现在只是移动了12的位置还有4个数没有进行交换,我们还有再从头进行再比较再交换,再进行n次比较交换后(偷懒不去计算具体多少次了),这个5个数现在变成这样了111,100,99,35,12;而这种交换像不像是“翻滚”,这就是"冒泡排序"。
  • 代码示例:
int main()
{
    int a[5], i, j, t;
    for(i = 0; i < 5; i++)
        scanf("%d",&a[i]);
    for(i = 0; i < 5; i++)
    {
        for(j = 0; j < 5-i; j++) 
        {
            if(a[j] < a[j+1])
            {
                t = a[j];
                a[j] = a[j+1];
                a[j+1] = t;
            }
        }
    }

    for(i = 0; i < 5; i++)
        printf("%d\n",a[i]);
}
/*输入 12 35 99 100 111
 * 输出结果 111 100 99 35 12
 */

相关文章

网友评论

      本文标题:冒泡排序

      本文链接:https://www.haomeiwen.com/subject/pjpanxtx.html