QQ登录

只需一步,快速开始

搜索
【活动】边做笔记边学习,还能赢取奖学金!
查看: 2579|回复: 68

关于冒泡排序的问题,理不清思路,谁能帮我解释下

[复制链接]
累计签到:11 天
连续签到:0 天
最佳答案
0 
发表于 2014-5-10 01:46:19 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如题。冒泡排序的几个变量不知道是指的什么  晕死我了,谁能帮我解释下,,l, j, k, n: Integer;这几个变量



procedure TForm1.Button2Click(Sender: TObject);
var
  l, j, k, n: Integer;
begin
  For l:=1 to i-1 do
  begin
    k:= i - l;
    For j:=1 to k do
    begin
      If (num[j] < num[j+1]) then
      begin
        n:= num[j];
        num[j]:= num[j+1];
        num[j+1]:= n;
      end;
    end;
  end;

1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:737 天
连续签到:1 天
最佳答案
5 
发表于 2014-5-10 02:29:01 | 显示全部楼层
C语言的应该看得懂吧 if 和 for 冒泡排序就是那两个循环的嵌套
  1. #include<stdio.h>

  2. int main()
  3. {
  4.         int n[10];
  5.         int i,j,t;
  6.         printf("Please Input ten number:");
  7.         for(i = 0;i<10;i++)//输入10个数字
  8.         {
  9.                 scanf("%d",&n[i]);
  10.         }
  11.         for(i = 0;i<10;i++)//冒泡排序
  12.         {
  13.                 for(j = i+1;j<10;j++)
  14.                 {
  15.                         if(n[i]>n[j])
  16.                         {
  17.                                 t = n[i];
  18.                                 n[i] = n[j];
  19.                                 n[j] = t;
  20.                         }
  21.                 }
  22.         }
  23.         for(i = 0;i<10;i++)//输出
  24.         {
  25.                 printf("%-5d",n[i]);
  26.         }

  27.         return 0;
  28. }
复制代码
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:11 天
连续签到:0 天
最佳答案
0 
 楼主| 发表于 2014-5-10 12:18:12 | 显示全部楼层
  for(j = i+1;j<10;j++)

卡这里了。这个 j 是什么啊?
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:14 天
连续签到:1 天
最佳答案
0 
发表于 2014-5-11 12:08:25 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:44 天
连续签到:1 天
最佳答案
0 
发表于 2014-5-14 16:52:25 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:101 天
连续签到:1 天
最佳答案
0 
发表于 2014-5-25 16:54:06 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:7 天
连续签到:1 天
最佳答案
0 
发表于 2014-5-26 12:06:56 | 显示全部楼层
我不懂你用的语言,不过原理应该差不多
我只会java,代码其实和c差不多,不要在意这小细节拉

public class Test2 {

        public static void main(String[] args) {
                int [] list={9,5,4,2,1,0,7,22,41,11};               //这是要排序的数组
                for(int i=0;i<list.length;i++){                    //这是一个for循环,i就是为了标记外层循环次数
                        for(int j=0;j<list.length-i-1;j++){      //j是为了标记内层循环,
                                if(list[j]<list[j+1]){                      //list.length-i-1,减一是因为j+1,如果不减会数组越界
                                        int temp=list[j];                  //temp 临时变量,为了实现交换值
                                        list[j]=list[j+1];
                                        list[j+1]=temp;
                                }
                        }
                }
                for(int i:list){
                        System.out.print(i+",");
                }
        }
}

理解一下冒泡排序的原理就好了
http://pan.baidu.com/s/1ntJm0fn
这是java的冒泡排序教程,原理不管什么语言的差不多,可以看看,千万别去背代码,没p用


评分

参与人数 1鱼币 +5 收起 理由
怀念部队 + 5

查看全部评分

1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:68 天
连续签到:1 天
最佳答案
0 
发表于 2014-5-30 17:13:27 From FishC Mobile | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:50 天
连续签到:1 天
最佳答案
0 
发表于 2014-6-11 17:09:34 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:77 天
连续签到:1 天
最佳答案
0 
发表于 2014-6-20 11:44:07 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:375 天
连续签到:1 天
最佳答案
0 
发表于 2014-6-20 12:41:21 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:37 天
连续签到:1 天
最佳答案
0 
发表于 2014-6-20 13:23:24 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:44 天
连续签到:1 天
最佳答案
0 
发表于 2014-6-24 10:58:32 | 显示全部楼层
强烈支持楼主ing……强烈支持楼主ing……
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:48 天
连续签到:1 天
最佳答案
0 
发表于 2014-6-26 16:33:46 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:7 天
连续签到:1 天
最佳答案
0 
发表于 2014-7-7 22:03:39 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:97 天
连续签到:1 天
最佳答案
0 
发表于 2014-7-30 09:06:02 | 显示全部楼层

前面的i-1个数已经排完了,
要排第i个数,
所以从第i个数开始,
依次与i后面的数比较,
所以j=i+1指向的就是i后面的数,
比较完之后将最大或者最小的值与第i个交换位置,
然后i=i+1,
重复上面的循环。
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:35 天
连续签到:1 天
最佳答案
0 
发表于 2014-8-2 21:21:06 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:41 天
连续签到:1 天
最佳答案
0 
发表于 2014-8-12 19:09:43 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:45 天
连续签到:1 天
最佳答案
0 
发表于 2014-8-13 08:03:31 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:79 天
连续签到:1 天
最佳答案
0 
发表于 2014-8-13 11:06:54 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋手机版Archiver( 粤公网安备 44051102000370号 | 粤ICP备11014136号

© 2010-2017 FishC.com GMT+8, 2017-7-23 08:43 Powered by Discuz! X2.5 Theme by dreambred

快速回复 返回顶部 返回列表