阅读:2983回复:5
某IT公司的一道笔试题
已知一个长度为n的线性表A采用顺序存储结构,请写出一个算法删除线性表A中所有含item的数据元素,要求算法的时间复杂度为O(n)。
|
|
|
1楼#
发布于:2003-08-03 00:45
先解一下,大家继续!
解题思路:一般来说想到的就是依次查找每个含item的元素,然后将线性表后面的元素全部前移,找到一个item,后面的元素前移一位,找到两个item,后面的元素前移2个位置...这样总的访问次数为n,满足
时间复杂度的要求。 算法: i=0; count=0; while (i<n) { if (A.equal(item)) { count++; // item数量增1 } else { A[i-count]=A; // 该位置上的元素前移count位 } i++; } |
|
|
2楼#
发布于:2003-08-03 11:56
晕~~~
|
|
3楼#
发布于:2003-08-03 14:26
^_^
|
|
4楼#
发布于:2003-08-08 21:00
这样的公司不适合我,哈哈
|
|
|
5楼#
发布于:2003-09-08 13:41
不知道怎么看的,呵呵
|
|
|