主题:都很久没看到题目了,我出道题吧.
moz
[专家分:37620] 发布于 2005-10-24 20:40:00
如何将一个新值插入到一个已排好序的数列中的适当位置去而不破坏原有的序?
可用数组可用文件
回复列表 (共5个回复)
沙发
飞鸟12 [专家分:2830] 发布于 2005-10-24 23:18:00
用链表怎么样?
不过用QB怎么实现 倒是不好说
板凳
ttosoft [专家分:0] 发布于 2005-10-25 15:39:00
楼主我想得比较乱!我也是个菜鸟.能具体的分析一下吗?谢谢!
3 楼
staa [专家分:3690] 发布于 2005-10-26 00:51:00
用对分搜索比较快吧。
最简单的是顺序比较。
4 楼
QB71 [专家分:1300] 发布于 2005-10-26 18:34:00
假设待插入数为整数(N%<=32767)
数组为a(),数组长度为整型(a()<=32767)
sub InsertData(a(),N%)
Low%=lBound(a)
High%=ubound(a)
while High%>Low%
M%=int((low%+High%)/2)
if a(M%)>N% then
High%=M%-1
else
Low%=M%+1
end if
wend
'M%此时为要插入位置
end sub
5 楼
moz [专家分:37620] 发布于 2005-10-26 19:44:00
把高手都引过来了
我数据结构没学好,
所以具体学术名称不太懂,
我的意思是:
1. 确定排头的数
确定排尾的数
确定数列的顺序
2. 初步估计大概位置
(比如说从1....100的100个数中,55大概的位置初步确定在第55位)
读取该位置上的值与要插入的值作比较
从而确定四楼中low%和high%的位置
3. 与四楼同样的办法,
取中值作比较,一直找到合适的位置为止.
4. 将目标位置之后的值全部位移一位,空出一个位置,填入.
我来回复