有一个算法问题请教。一个一维数组,1-100,不是从零开始,其中单数位是父类数据,偶数位为子类数据,相邻的两个数据是父子对应关系,即1对应2,3对应4,以此类推。数组中父类有重复数据,请问如何检索出唯一的父类数据到一个新的一位数组?请用你最熟悉的语言描述,谢谢!

解决方案 »

  1.   

    1。
    for j=1 to 100  do
       for i=j to 100
       do  
         找出第一个,
         跟第三个比,相同,退出
         不同
         I=i+2
        end
    i赋给新数组
     j=j+1
     end还是没有完全理解
    唯一的含义
      

  2.   

    相当于SQL里的distinct,就是重复的数据只保留一个
      

  3.   

    //效率不是很好,不知你说的是不是这个意思
    int a[50],i;
    int NotIn(int x,i)
    {
     int n;
     for(n=1;n<=i;n++)
      if (a[n]==x) {return 0;break;}
     return 1;
    }
    for(i=1;i<=100;i+=2)
    {
     if (NotIn(e[i],i)) a[i]=e[i];//e[i]假设e[i]是原始的数组 
    }
      

  4.   

    请问我的算法哪里错了?  j:=2;
      k:=1;
      TempArray[1]:=GlobalArray[2];
      while GlobalArray[j]<>'' do
      begin
        while TempArray[k]<>'' do
        begin
        if TempArray[k]=GlobalArray[j] then
        begin
          nFlags:=false;
          exit;
        end
        else
        begin
          nFlags:=true;
        end;    k:=k+1;
        end;    if nFlags=true then
          TempArray[k]:=GlobalArray[j];
        j:=j+2;
      end;
      

  5.   

    写的有点乱,你数组里到底是存贮的int还是char啊,为什么用GlobalArray[j]<>''
      

  6.   

    是String,Delphi里的数组没有方法吗?
      

  7.   

    你数组的每一个元素都是string?
    那样:GlobalArray[j]<>''的左边是一个string右边是个char
      

  8.   

    改成GlobalArray[j]<>null也不行,编译通过,不能运行
      

  9.   

    另外delphi是nil不是null,而且我也不清楚那样做对不对?
      

  10.   

    nil不行,nil针对指针类型,你能不能写一个算法出来?我实在写不对