gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15946
  • QQ554730525
  • 铜币25338枚
  • 威望15363点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
阅读:2785回复:5

某IT公司的一道笔试题

楼主#
更多 发布于:2003-08-03 00:43
已知一个长度为n的线性表A采用顺序存储结构,请写出一个算法删除线性表A中所有含item的数据元素,要求算法的时间复杂度为O(n)。
喜欢0 评分0
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15946
  • QQ554730525
  • 铜币25338枚
  • 威望15363点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
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++;
}
举报 回复(0) 喜欢(0)     评分
laughinggas
路人甲
路人甲
  • 注册日期2003-08-02
  • 发帖数35
  • QQ
  • 铜币167枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2003-08-03 11:56
晕~~~
举报 回复(0) 喜欢(0)     评分
fym37
路人甲
路人甲
  • 注册日期2003-08-03
  • 发帖数48
  • QQ
  • 铜币95枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2003-08-03 14:26
^_^
举报 回复(0) 喜欢(0)     评分
heqjxiaoyao
路人甲
路人甲
  • 注册日期2003-07-31
  • 发帖数981
  • QQ83031582
  • 铜币910枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2003-08-08 21:00
这样的公司不适合我,哈哈
希望大家访问我的个人博客: 随笔闲谈: http://rsgisman.bokee.com
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15946
  • QQ554730525
  • 铜币25338枚
  • 威望15363点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
5楼#
发布于:2003-09-08 13:41
不知道怎么看的,呵呵
举报 回复(0) 喜欢(0)     评分
游客

返回顶部