| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 398 人关注过本帖
标题:冒泡算法的一个描述过程,自己想加深下理解
取消只看楼主 加入收藏
wewoor
Rank: 1
等 级:新手上路
帖 子:25
专家分:5
注 册:2010-10-4
结帖率:75%
收藏
 问题点数:0 回复次数:0 
冒泡算法的一个描述过程,自己想加深下理解
#include <stdio.h>

void MaoPao(int* arr,int n)

    for(int side = n-1;side > 0;--side)        /*side 控制内循环                                  冒泡的一个过程:我来列举一下几个数的排序过程

    {
        for(int m = 0;m < side;++m)                                                               有六个数:         1  2  3  4  5  6         所以我们控制内循环的话在这里就是side=6-1,因为内循环是从0开始的嘛,也就是5次循环
        {
            if(arr[m]<=arr[m+1])                                                                  第一次循环:       2  1                     第1次内循环1与2比较
            {                                                                                     第二次循环:          3  1                  第2次内循环1与3比较
                int t = arr[m+1];                                                                 第三次循环:             4  1               第3次内循环1与4比较
                arr[m+1] = arr[m];                                                                第四次循环:                5  1            第4次内循环1与5比较
                arr[m] = t;                                                                       第五次循环:                   6  1         第5次内循环1与6比较
                                                                                                  所以结果为:       2  3  4  5  6  1         此时把1排到了最后面
            }                                                
        }                                                                                         外循环side=4时
    }                                                                                            第一次循环:        3  2                      第1次内循环2与3比较                  
}
                                                                                                 第一次循环:           4  2                   第2次内循环2与4比较
void main()                                                                                                                .
{                                                                                                                          .
    int array[6];                                                                                                          .

    printf("请输入数组元素:\n");                                                               经过4次内循环后:  3  4  5  6  2  1           

    for(int i = 0;i <6 ;++i)                                                                   反复经过5次控制内循环后,如同上面,最后的到
    {
        scanf("%d",&array[i]);                                                            经过最后1次内循环后即为: 6  5  4  3  2  1     即完成了从大到小的排序
    }
    printf("你输入的元素为:\n");

    for(i = 0;i < 6;++i)
    {
        printf("%d\n",array[i]);
    }

    MaoPao(array,6);
   
    printf("排序后得:");
    for(i = 0;i < 6;++i)
    {
        printf("%d",array[i]);
    }
   
}

[ 本帖最后由 wewoor 于 2011-2-27 17:36 编辑 ]
搜索更多相关主题的帖子: include 
2011-02-25 13:06
快速回复:冒泡算法的一个描述过程,自己想加深下理解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017343 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved