| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1991 人关注过本帖
标题:初学者之经典1——冒泡排序(适合最最初级的菜菜们)
取消只看楼主 加入收藏
菜虫编编
Rank: 1
等 级:新手上路
帖 子:18
专家分:1
注 册:2010-10-3
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:6 
初学者之经典1——冒泡排序(适合最最初级的菜菜们)
#include <stdio.h>
#include <stdlib.h>
main()
{
  int ctr,inner,outer,didSwap,temp;     /*定义整型变量,分别为ctr,inner,outer,didSwap,temp*/
  int nums[10];                         /*定义整型数组为10个元素,存放以下的随机*/
  for (ctr=0;ctr<10;ctr++)
    { nums[ctr]=(rand()%99)+1; }        /*利用rand()函数产生随机数,%99表示产生随机数不超过三位数*/
  printf("\nHere is the list befor the sort:");   /*排列之前*/
  for (ctr=0;ctr<10;ctr++)
    { printf("\n%d",nums[ctr]); }        /*在显示屏上输出由上面随机产生的数字,并每输出一个换行*/
/*以下才是重点,也是算法所在*/
  for (outer=0;outer<9;outer++)      /*执行9次外循环,目的是每一个数字都能与相邻的数字作大小比较*/
    { didSwap==0;
      for (inner=outer;inner<10;inner++)  /*以下自己好好去体会吧!!慢慢悟~~~~*/
        { if (nums[inner]<nums[outer])
            { temp=nums[inner];
              nums[inner]=nums[outer];
              nums[outer]=temp;
              didSwap==1;
             }
          }
        if (didSwap==0)
          { break; }
      }
  printf("\nHere is the list after it is sorted:");  /*排列之后*/
  for (ctr=0;ctr<10;ctr++)
    { printf("\n%d",nums[ctr]);}
  getch();
}                                     /*俺测试通过,有兴趣的话也试试吧!!~~*/


[ 本帖最后由 菜虫编编 于 2010-10-3 16:06 编辑 ]
搜索更多相关主题的帖子: 初级 冒泡 经典 菜菜 
2010-10-03 16:04
菜虫编编
Rank: 1
等 级:新手上路
帖 子:18
专家分:1
注 册:2010-10-3
收藏
得分:0 
不好意思,didSwap那里确实是错了,我大意了~!
有个问题是:为什么还要加<time.h>头文件?????

心境决定环境,想法决定活法,思路决定出路!
2010-10-04 19:24
菜虫编编
Rank: 1
等 级:新手上路
帖 子:18
专家分:1
注 册:2010-10-3
收藏
得分:0 
除了didSwap变量错外,好像没啥问题吧!
再者,虽然这种思路跟算法不是很好,也不是最优的,但适合给初学者只供参考。
再再者,初学者还不会结构体、定义函数的用法,正所谓一步一个脚印嘛!~~

心境决定环境,想法决定活法,思路决定出路!
2010-10-05 18:56
菜虫编编
Rank: 1
等 级:新手上路
帖 子:18
专家分:1
注 册:2010-10-3
收藏
得分:0 
回复 6楼 御坂美琴
给点初学者的空间行不?偶看了版主的帖子,一下 子整那么多高水平的东西,咋看?俺的就不一样,虽然算法、思路粗糙,登不上大堂,但最适合初入门的菜菜们!~~~

心境决定环境,想法决定活法,思路决定出路!
2010-10-05 19:04
菜虫编编
Rank: 1
等 级:新手上路
帖 子:18
专家分:1
注 册:2010-10-3
收藏
得分:0 
回复 9楼 御坂美琴
版主啊,那算法就是作比较用的!我举例写出我的思路来吧,比如有以下数:
                                   50
                                   32
                                   93
                                   2
                                   74
在第1篇扫描中,C程序把第1个值与第2个值比较。因为32比50小,所以它们交换了位置(第1次内循环开始):
                                   32
                                   50
                                   93
                                   2
                                   74
 然后比较32和93,没有改变它们的位置。接着,C程序比较32和2。因为2更小,所以32和2交换位置:
                                  2
                                  50
                                  93
                                  32
                                  74
最后,把2和74进行比较,没有改变它们的位置。(第1次内循环结束)
          第1遍扫描之后:
                                 2
                                 50
                                 93
                                 32
                                 74   
在第2篇扫描中,C程序把第2个值50与93进行比较,并且不改变它们的位置。然后比较50和32,并交换它们的位置 :
(第2次内循环开始)              2
                                 32
                                 93
                                 50
                                 74
然后,C程序把第2个值32与74进行比较,并且不改变它们的位置
第2篇扫描后:
                               2
                               32
                               93
                               50
                               74
 以此类推!!!
                                                               

心境决定环境,想法决定活法,思路决定出路!
2010-10-05 19:42
菜虫编编
Rank: 1
等 级:新手上路
帖 子:18
专家分:1
注 册:2010-10-3
收藏
得分:0 
回复 11楼 你们都要疼我哦
看我举的例子,你觉得呢?

心境决定环境,想法决定活法,思路决定出路!
2010-10-05 19:45
菜虫编编
Rank: 1
等 级:新手上路
帖 子:18
专家分:1
注 册:2010-10-3
收藏
得分:0 
回复 14楼 你们都要疼我哦
不冒吗?看了你这一句,我冒泡了!!

心境决定环境,想法决定活法,思路决定出路!
2010-10-05 19:55
快速回复:初学者之经典1——冒泡排序(适合最最初级的菜菜们)
数据加载中...
 
   



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

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