dangyang@163 发表于 2020-7-11 23:11:54

冒泡排序V1.0,代码中的k:= i-l,是什么意思,我总是觉得k:=i-1-l;,谢谢老哥们了。

冒泡排序V1.0,代码中的k:= i-l,是什么意思,我总是觉得k:=i-1-l;,谢谢老哥们了。
冒泡排序V1.0,代码中的k:= i-l,是什么意思,我总是觉得k:=i-1-l;,谢谢老哥们了。

liuzhengyuan 发表于 2020-7-12 09:43:33

发代码发上来看看,不同的人写的程序遍历变量名都取得不一样

心驰神往 发表于 2020-8-15 09:48:38

个人理解,分外循环和内循环。外循环:一共需要进行多少轮比较,内循环:每轮比较的次数

财神爷爷 发表于 2020-8-15 14:23:32

冒泡 其实就干了 以下几件事
{
xxx array of integer ;
var J0,J1,J2: integer;

   J2:=1;


///1,求需要泡的趟数
///(总数组-1) 比如数组申请的是0..19 那么就是20-1

///代码大概可以这样 格式写High(xxx)=最大数字的索引号

J0:= High(xxx) -1;

/// 这个时候J0=18




////2,两两相邻数字比较大小 达到自己想要设定的效果就互换
    //对比前 需要想下 怎么得出怎么相邻对比 如:0>1 1>2 2>3
    //大概看得出来 被对比的【1】永远比 对比数【0】 大1

    // 2.1 开始操作 先找出从【0】到 【最高数】 用for

    for J1:= 0 toJ0 to    // 0用j1 因为初始化他是0 这里的j0是上面求出来的190~18=19趟
    begin

   // 2.2 这个时候 对比数【0】已经被找出来了 是j1
   // 2.3 被对比的【1】永远-比- 对比数【0】 大1还未求出来 如下
   
    // 2.4先初始化他等于1.看上面的 J2:=1;

   // 2.5在进行相邻对比后+1 条件成立或者不成立都要把j2 这个被对比数+1

      ifxxx > xxx then
      begin
         xxx:=xxx;如果j1 比 j2 大 就把小的数子往后移动一下
         J2:=j2+1比对完第一次 把数子 被对比的数 +1 不然无法往下对比
      end
      else
       J2:=j2+1   //这里大概意思就是对比的时候 不大于也+1次
      end;   

   
   以上都是个人理解··方法应该大同小异


   

页: [1]
查看完整版本: 冒泡排序V1.0,代码中的k:= i-l,是什么意思,我总是觉得k:=i-1-l;,谢谢老哥们了。