首页 > 试题广场 >

以下操作中,数组比链表速度更快的是()

[不定项选择题]
以下操作中,数组比链表速度更快的是()
  • 返回中间节点
  • 返回头部节点
  • 选择随机节点
  • 头部插入
答案:CE
数组是顺序存储的线性表,相对于链表而言主要的优点就是可以通过下标随机访问数组中的任意元素,C选项的访问中间节点,数组可以通过array[length/2]访问,链表需要依次查找到中间节点。
所以CE是正确的
发表于 2015-01-17 13:21:35 回复(14)
我觉得A也应该选  因为链表逆序你还需要先找到尾节点
发表于 2015-04-02 11:02:20 回复(7)
ACE
数组是随机存取,线性表是逻辑上连续但物理上分开存放,
因此查询、修改操作数组更快,数组表示线性表的好处在于能随机存取 
但插入、删除等操作线性表更快
发表于 2015-01-17 14:03:22 回复(1)
解释A: 

【描述】

将一个数组中的值按逆序重新存放。例如,原来的顺序为 8 6 5 4 1 。要求改为 1 4 5 6 8

【输入】

输入有两行:第一行数组中元素的个数 n 1 < n <100) ,第二行是 n 个整数,每两个整数以空格间隔。

【输出】

输出有一行,输出逆序后数组元素值,每两个整数以空格间隔。

【输入示例】

5

8 6 5 4 1

【输出示例】

1 4 5 6 8

C代码】

---------------

#include <stdio.h>

#define ARRAY_SIZE 100

int main(void) {

   int a[ARRAY_SIZE];

   int i, n, temp;

   scanf("%d", &n);

   for(i = 0; i < n; ++i)

       scanf("%d", &a[i]);

   for(i = 0; i < n / 2; ++i) {

       temp = a[i];

       a[i] = a[n - i - 1];

       a[n - i - 1] = temp;

    }

   for(i = 0; i < n; ++i)

       printf("%d ", a[i]);

   printf("\n");

   return 0;

}

发表于 2017-07-11 14:23:43 回复(0)
爅头像
题目中的线性表不明确
发表于 2016-09-10 01:36:22 回复(0)
d为什么不对?
发表于 2015-11-07 09:30:38 回复(4)
注意D:一样快,所以不选
发表于 2019-05-06 23:28:58 回复(0)
原地逆序对于数组来说可使用双指针法,只需遍历n/2次。而链表需要从头至尾依次交换,遍历n次。
发表于 2018-10-20 09:28:23 回复(0)
头部节点应该改一样快?
发表于 2017-12-30 17:04:48 回复(0)
d选项,原来是一样快啊
发表于 2017-10-23 11:45:53 回复(0)
中,数组比链表速度更快的是____
  • 原地逆序  一样吧 或者数组快一点
  • 头部插入  链表快
  • 返回中间节点   数组快
  • 返回头部节点   一样快
  • 选择随机节点   数组快
发表于 2017-09-05 21:21:02 回复(0)
数组是线性表的一种。线性表是一种逻辑抽象,数组是一种物理结构,怎么比较?
发表于 2016-09-10 21:31:26 回复(0)
假设是个对象数组,这个对象里面有10万个数据成员,数组原地逆序,每次交换就需要30万次操作,链表改改指针就好了。
发表于 2016-05-31 17:47:56 回复(1)
E
这里主要是考察数组和线性表的知识,在操作中,数组返回随机节点的操作要快于线性表。
参考http://baike.baidu.com/view/178622.htm
编辑于 2015-09-03 11:17:54 回复(0)
主要解释下A选项,如果是数组只要遍历一半元素就可以了,翻转的思想类似于字符串逆序,但链表如果要完成逆序,就算只是修改指针也要把所有的元素遍历完,所以相比而言数组还是比链表快的。
发表于 2016-04-02 11:44:15 回复(8)
数组可以头尾交换,相当于处理n/2个数据,而链表至少得完整遍历一遍
发表于 2016-03-31 11:49:21 回复(4)
A选项,如果是数组只要遍历一半元素就可以了,翻转的思想类似于字符串逆序,但链表如果要完成逆序,就算只是修改指针也要把所有的元素遍历完,所以相比而言数组还是比链表快的。
B链表只需插入一个节点,数组需移动n个元素
C选项的访问中间节点,数组可以通过array[length/2]访问,链表需要依次查找到中间节点。
D头结点都一样
E 数组是顺序存储的线性表,相对于链表而言主要的优点就是可以通过下标随机访问数组中的任意元素。
发表于 2017-04-03 11:23:17 回复(0)
完美错过正确答案 数组比链表速度更快的是: 原地逆序,返回中间节点,选择随机节点 A选项数组只要遍历一半元素就可以了,链表需要遍历整个
编辑于 2019-04-10 23:11:37 回复(0)
双向链表表示不服。
发表于 2020-08-08 19:49:32 回复(0)
哈哈,神他妈,我刚开始没注意想着原地逆序就直接反向遍历,哈哈哈,粗心了。原来是对半交换。
发表于 2020-04-19 08:38:34 回复(0)