回答楼主:
假设要插入的数是 x , 顺序表 a
我想到一个方法,下面我把算法描述一下:
可以用折半摸索的方法,寻找一个合适 x 的地方,容易理解这个地方就是与 x 相等的或 <x< 这样的位置(这个位置就是我们要将 x 插入的地方,打比方: 如果是返回的是 3,我们要将 x 插入的位置就是4 ).
这里就有两个要处理的地方,如果是与 x 相等的我们直接返回它的下标值,但这种概率一般很小,这是第一种情况;
第二种情况,经常搜索会一直进行到剩下最一个元素,我们只要把 x 与这个元素比较,如果 x 小插在此元素前面, x 大则插在后面.
此算法关键在用折半搜索方法, 将 x 插入到与它相等的地方是不会错的,否则要将 x 插入到 <x<
的地方,这时我们要搜索到最后一个元素,这样才能保证插入的正确性.如果你已经明白了,那么细节的地方你自己去做咯.