回 帖 发 新 帖 刷新版面

主题:都很久没看到题目了,我出道题吧.

如何将一个新值插入到一个已排好序的数列中的适当位置去而不破坏原有的序?
可用数组可用文件

回复列表 (共5个回复)

沙发

用链表怎么样?
不过用QB怎么实现 倒是不好说

板凳

楼主我想得比较乱!我也是个菜鸟.能具体的分析一下吗?谢谢!

3 楼

用对分搜索比较快吧。
最简单的是顺序比较。

4 楼

假设待插入数为整数(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 楼

把高手都引过来了

我数据结构没学好,
所以具体学术名称不太懂,
我的意思是:

1. 确定排头的数
   确定排尾的数
   确定数列的顺序
2. 初步估计大概位置
   (比如说从1....100的100个数中,55大概的位置初步确定在第55位)
   读取该位置上的值与要插入的值作比较
   从而确定四楼中low%和high%的位置
3. 与四楼同样的办法,
   取中值作比较,一直找到合适的位置为止.
4. 将目标位置之后的值全部位移一位,空出一个位置,填入.

我来回复

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