简答题

一个线性表中的元素为正整数或负整数。设计算法将正整数和负整数分开,使线性表的前一半为负整数,后一半为正整数。不要求对这些元素排序,但要求尽量减少比较次数。

正确答案

本题的基本思想是:先设置好上、下界和轴值,然后分别从线性表两端查找正数和负数,找到后进行交换,直到上下界相遇。算法如下:

答案解析

相似试题
  • 又一个由4000个整数构成的顺序表,假定表中的元素已经按升序排列,采用二分查找定位一个元素。则最多需要几次比较就能确定是否存在所查找的元素()

    单选题查看答案

  • 给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k小的元素,请设计一个最坏时间复杂度为O(n)的算法,并对其时间复杂度进行分析说明。

    简答题查看答案

  • 已知长度为n的线性表A中的元素是整数,写算法求线性表中值大于item的元素个数。分两种情况编写函数: (1)线性表采用顺序存储; (2)线性表采用单链表存储。

    简答题查看答案

  • 设有10阶矩阵A,其对角线以上的元素aij均取值为-3,其他矩阵元素为正整数,现在将矩阵A压缩存放在一维树组F[m]中,则 m为()。

    单选题查看答案

  • 广义表的同级元素(直属于同一个表中的各元素)具有线性关系。

    判断题查看答案

  • 顺序存储的线性表,设其长度为n。在任何位置上插入或删除操作的时间代价基本上都是等效的。则插入一个元素大约需要移动表中的()个元素,删除一个元素时大约要移动表中的()个元素。

    填空题查看答案

  • 有一100个元素的整数数组,假设已存放了99个从小到大的整数,最后一个空缺。编写一程序,从键盘输入任一整数,把它放到数组中,使数组中数据仍然有序并输出。

    简答题查看答案

  • 对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的,插入一个元素时平均移动表中的()个元素。

    单选题查看答案

  • 请说明顺序表和单链表各有何优缺点,并分析下列情况下,采用何种存储结构更好些。 ⑴若线性表的总长度基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素。 ⑵如果n个线性表同时并存,并且在处理过程中各表的长度会动态发生变化。 ⑶描述一个城市的设计和规划。

    简答题查看答案