网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

设A是由n个非0实数构成的数组,设计一个算法重新排列的数组的数,使得负数都排列在正数的前面,要求算法使用O(n)的时间和O(1)的空间。


参考答案和解析
a , b , c 是三个非零向量成立,当 a , b , c 三个向量共面时,则 { a , b , c } 不为空间的一组基, 即命题p推不出命题q; 但反之 { a , b , c } 为空间的一组基,则 a , b , c 不共面,所以 a , b , c 是三个非零向量, 即命题q推出命题p; 所以命题q是命题p的充分不必要条件. 故选A.
更多 “设A是由n个非0实数构成的数组,设计一个算法重新排列的数组的数,使得负数都排列在正数的前面,要求算法使用O(n)的时间和O(1)的空间。” 相关考题
考题 在n个结点的线性表的数组实现中,算法的时间复杂度是O(1)的操作是()。A.访问第i(1<=i<=n)个结点和求第i个结点的直接前驱(1<i<=n)B.在第i(1<=i<=n)个结点后插入一个新结点C.删除第i(1<=i<=n)个结点D.以上都不对

考题 设某算法的计算时间可用递推关系式T(n)=2T(n/2)+n表示,则该算法的时间复杂度为(59)。A.O(1gn)B.O(nlgn)C.O(n)D.O(n2)

考题 以下是一个对数组A(含有n个数值元素)进行排序的算法伪代码,请问它的平均时间复杂度是多少()A.O(n)B.O(n^2)C.O(1)D.O(log(n))

考题 已知一个大小为n的整型数组,现求该数组的全部连续子数组的元素之和的最大值,最优算法的时间复杂度是()如:a[4]={2,-1,3,-4},它的全部连续子数组为{2,-1,3,-4,[2,-1],[-1,3],[3,-4],[2,-1,3],[-1,3,-4],[2,-1,3,-4]},它们的元素之和为{2,-1,3,-4,1,2,-1,4,-2,0},其中的最大值为4。A.O(logN)B.O(N)C.O(N*logN)D.O(N^2)

考题 在一个元素个数为N的数组里,找到升序排在N/5位置的元素的最优算法时间复杂度是()A.O(n)B.O(nlogn)C.O(n(logn)2)D.O(n3/2)

考题 使用二分查找算法在一个有序序列中查找一个元素的时间复杂度为()A.O(N)B.O(logN)C.O(N*N)D.O(N*logN)

考题 设二维数组a[1..m, 1..n] 含有m*n 个整数。 ① 写一个算法判断a中所有元素是否互不相同?输出相关信息(yes/no); ② 试分析算法的时间复杂度。

考题 设任意n个整数存放于数组A(1:n)中,试编写算法,将所有正数排在所有负数前面(要求算法复杂度为0(n))。

考题 若长度为n的线性表采用顺序存储结构,在第i≤1≤i≤n+1) 个位置插入一个新元素的算法时间复杂度为(1)。A.O(0)B.O (1)C.O(n)D.O(n2)

考题 对n个基本有序的整数进行排序,若采用插入排序算法,则时间和空间复杂度分别为(62);若采用快速排序算法,则时间和空间复杂度分别为(63)。A.O(n2)和O(n)B.O(n)和O(n)C.O(n2)和O(1)D.O(n)和O(1)

考题 设某算法的计算时间表示为递推关系式T(n)=T(n-1)+n(n>O)及T(0)=1,则该算法的时间复杂度为(65)。A.O(lgn)B.O (nlgn)C.O(n)D.O(n2)

考题 ● 现要对n个实数(仅包含正实数和负实数)组成的数组A进行重新排列,使得其中所有的负实数都位于正实数之前。求解该问题的算法的伪代码如下所示,则该算法的时间和空间更杂度分别为(65)。i=0;j=n-1;while ij dowhile A[i]0 doi= i+1;while A[j]0 doj =j-l;if ij do交换A[i]和A[j];(65)

考题 设一个广义表中结点的个数为n,则求广义表深度算法的时间复杂度为____。A.O(1)B.O(n)C.O(n2)D.O(log2n)

考题 设某算法的计算时间可用递推关系式T(n)=2T(n/2)+n表示,则该算法的时间复杂度为(1)。A.O(lgn)B.O(nlgn)C.O(n)D.O(n2)

考题 设数组a[0..n-l,O..m-l] (n>l,m>l)中的元素以行为主序存放,每个元素占用1个 存储单元,则数组元素a[ij](0<i<n,0<j<m)的存储位置相对于数组空间首地址的偏移量为(35)。A.j*m+iB.i*m+jC.j*n+iD.i*n+i

考题 快速排序算法是,在排序过程中,在待排序数组中确定一个元素为基准元素,根据基准元素把待排序数组划分成两个部分,前面一部分元素值小于基准元素,而后面一部分元素值大于基准元素。然后再分别对前后两个部分进一步进行划分。根据上述描述,快速排序算法采用了 ( ) 算法设计策略。已知确定着基准元素操作的时间复杂度为O(n),则快速排序算法的最好和最坏情况下的时间复杂度为 (请作答此空) 。A.O(n)和O(nlgn) B.O(n)和O(n2) C.O(nlgn)和O(nlgn) D.O(nlgn)和O(n2)

考题 给定包含n个正整数的数组A和正整数x,要判断数组A中是否存在两个元素之和等于x,先用插入排序算法对数组A进行排序,再用以下过程P来判断是否存在两个元素之和等于x。low=1;high=n;while(high>low)if A[low]+A[high]=x return true;else if A[low]+A[high]>x low++;else high--;return false;则过程P的时间复杂度为( ),整个算法的时间复杂度为(请作答此空)。A.O(n) B.O(nlgn) C.O(n2) D.O(n2lgn)

考题 快速排序算法在排序过程中,在待排序数组中确定一个元素为基准元素,根据基准元素把待排序数组划分成两个部分,前面一部分元素值小于基准元素,而后面一部分元素值大于基准元素。然后再分别对前后两个部分进一步进行划分。根据上述描述,快速排序算法采用了(61)算法设计策略。已知确定着基准元素操作的时间复杂度为O(n),则快速排序算法的最好和最坏情况下的时间复杂度为(62)。A.O(n)和O(nlgn) B.O(n)和O(n2) C.O(nlgn)和O(nlgn) D.O(nlgn)和O(n2)

考题 设某算法的计算时间表示为递推关系式T(n)=T(n-1)+n(n>O)及T(0)=1,则该算法的时间复杂度为( )。A.O(lgn) B.O(nlgn) C.O(n) D.O(n^2)

考题 设一个广义表中结点的个数为n,则求广义表深度算法的时间复杂度为()。A、O(1)B、O(n)C、O(n2)D、O(log2n)

考题 给定一个由n个数组成的序列,要求该序列的最长单调上升子序列,请设计对应的算法并分析其时间复杂度,如果时间复杂度劣于O(nlogn)的,将其优化为O(nlogn)时间复杂度的算法。

考题 设顺序栈S中有2n个元素,从栈顶到栈底的元素依次为a2n,a2n-1,…,a1,要求通过一个循环队列重新排列栈中元素,使得从栈顶到栈底的元素依次为a2n,a2n-2,…,a2,a2n-1,a2n-3,…,a1,请设计算法实现该操作,要求空间复杂度和时间复杂度均为O(n)。

考题 设S为C语言的语句,计算机执行下面算法时,算法的时间复杂度为()。for(i=n-1;i=0;i--)for(j=0;jA、n2B、O(nlgn)C、O(n)D、O(n2)

考题 0-1背包问题的回溯算法所需的计算时间为()A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)

考题 在n个结点的线性表的数组实现中,算法的时间复杂度是O(1)的操作是()。A、访问第i(1<=i<=n)个结点和求第i个结点的直接前驱(1<i<=n)B、在第i(1<=i<=n)个结点后插入一个新结点C、删除第i(1<=i<=n)个结点D、以上都不对

考题 设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为()。A、O(n)B、O(nlog2n)C、O(1)D、O(n2)

考题 问答题给定一个由n个数组成的序列,要求该序列的最长单调上升子序列,请设计对应的算法并分析其时间复杂度,如果时间复杂度劣于O(nlogn)的,将其优化为O(nlogn)时间复杂度的算法。

考题 单选题对n个元素值分别为-1、0或1的整型数组A进行升序排序的算法描述如下:统计A中-1、0和1的个数,设分别为n1、n2和n3,然后将A中的前n1个元素赋值为-1,第n1+1到n1+n2个元素赋值为0,最后n3个元素赋值为1。该算法的时间复杂度和空间复杂度分别为()。A Θ(n)和Θ(1)B Θ(n)和Θ(n)C Θ(n2)和Θ(1)D Θ(n2)和Θ(n)