回 帖 发 新 帖 刷新版面

主题:关于数组元素排序输出问题

小弟遇到的问题如下,请大家帮忙~
一个数组,比如说共有100个整型元素,其中可能有很多个相等的数【比如其中有3个元素都是8;有12个元素都是6等等】。我想将相等的数都分别找到,并用write进行分别的输出,并且输出该组元素的大小及位置【比如:第一次输出的数值大小为8,对应的数组位置为5,76,99;第二次输出的数值大小为6,位置为3,21,34,......】。具体该怎么来编程呢?-------小弟没有确切的思路,望大家给予点拨~
衷心的谢谢大家

回复列表 (共2个回复)

沙发

不考慮節約內存的方法:
開一個數組:count(100,0:100)
count(*,0)存元素值
1:100存此值下標。

此法需要遍歷一次原始數組,每個元素需要在count里定位一次,最壞的情況是(1+n)*n/2次比較。
如果引入另一個索引數組,則速度會有很大的提高:)

板凳

呵呵,谢谢cgl_lgs。不过小弟基础差些,还是不太会写具体的程序。
count(*,0)存元素值------------怎么个写法?
我的元素是实型的,而具体位置是整型的,那么数组又该定义成什么类型呢?
望再次给予指点~

我来回复

您尚未登录,请登录后再回复。点此登录或注册