首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

用哪种数据结构、算法更快,该怎么解决

2013-07-11 
用哪种数据结构、算法更快我有这样一个需求,要对一组integer数据大约250个,进行排序,这些数据经常被更新大

用哪种数据结构、算法更快
我有这样一个需求,要对一组integer数据大约250个,进行排序,这些数据经常被更新大约十几二十个,而其他的保持不变,但是这种更新非常频繁,而且我需要读更新之后的前面一些结果和结果所对应的索引。前面问过类似的问题,版主也回答过,使用linq的方式,排序倒是非常快,可是在我读取结果之后,速度竟然和使用array.sort之后读取速度一样了。

举个例子来说,在之前操作后有这样一组数据,
索引:0,1,2,3,4,5,6,7,8,9
数据:9,8,7,6,5,4,3,2,1,0
现在将输入改变后,结果如下
索引:0,1,2,3,4,5,6,7,8,9
数据:9,8,7,6,5,4,3,2,9,9
这时,我要得到按数据从大到小排序的索引,并且要访问其中的一部分(确切说是从0索引开始访问排在前面的一部分)数据。

可以看出,当后续索引和数据读取后,下次操作前数据处于有序状态,也就是说,数据被更新后进行本次排序前大部分还是有序的,用哪种方式效率更高呢?

st mytpe
dim val as integer
dim left as integer
dim right as integer
end st
dim mt(250) as st

这样的结构?使用插入式排序?
[解决办法]

引用:
http://msdn.microsoft.com/zh-cn/library/ms132319(v=vs.80).aspx


没错。要说到是什么数据结构,那就是binary search tree,事实上sortedlist内部就是使用了binary search tree。

热点排行