本帖最后由 xwl777 于 2011-01-02 20:41:33 编辑

解决方案 »

  1.   

    如果数组是从大到小排的,0在最后面,就用 SetLength 将数组缩小。如果是从小到大排的,0在最前面,如数组长度为 10 前两个为0,则利用CopyMemory(@Arr[0],@Arr[2],8)
    将数据都前移一下,然后在用 SetLength 将数组缩小
      

  2.   

    定义一个临时数组,先过滤0数据,存储到临时数组,再对临时数组进行排序,这样减少排序次数,效率会高一些
    完了再CopyMemory