写一个时间为 (n lg n )的算法
来源:百度知道 编辑:UC知道 时间:2024/05/06 02:27:41
设计一个算法为(N LG N )的算法,在一个实数数组A, 和一个实数X,判断A中是否存在2个数的和等于X
下面是我写的伪代码
伪代码:
1 float A[100] ; x;
2 Fenjie (folat A[]; n;m;)
If(n<m)
Mid = 0 ;
Mid = ( n + m )/ 2 //分解
Fenjie ( A[];n;mid) //左边
Fenjie (A[];mid+1;m) //右边
qiuhe ( A[];n;mid;m;)
While ( n<mid && mid+1 < m) //不超出界限
If ( A[n] )+ A[mid+1]! = x )
{n++;};//指向下一个
mid+1 ++ ;//全部不等于的时候 mid + 1 ++
n = 0;//n 重新开始计数
我的算法我知道肯定还有错,也达不到算法的要求。
当2个 数组 的元素不相等的时候, 该如何去写?
大哥大姐们 有空的写个代码 没空了讲讲算法 谢谢啦
下面是我写的伪代码
伪代码:
1 float A[100] ; x;
2 Fenjie (folat A[]; n;m;)
If(n<m)
Mid = 0 ;
Mid = ( n + m )/ 2 //分解
Fenjie ( A[];n;mid) //左边
Fenjie (A[];mid+1;m) //右边
qiuhe ( A[];n;mid;m;)
While ( n<mid && mid+1 < m) //不超出界限
If ( A[n] )+ A[mid+1]! = x )
{n++;};//指向下一个
mid+1 ++ ;//全部不等于的时候 mid + 1 ++
n = 0;//n 重新开始计数
我的算法我知道肯定还有错,也达不到算法的要求。
当2个 数组 的元素不相等的时候, 该如何去写?
大哥大姐们 有空的写个代码 没空了讲讲算法 谢谢啦
可以这样,先用一次快速排序,让序列有序化,时间复杂度O(NlogN)
然后,对每一个数Ni,用二分查找找X-Ni,二分查找的时间复杂度是O(logN),所以这一步的时间复杂度就是O(NlogN)
所以算法的整体复杂度就是O(NlogN)
执行时间为O(n^2)的算法一定比执行时间为O(2^n)的算法快吗?为什么?
已知m,n为正整数,求出满足等式3n+4n+5n+…+(n+2)n=(n+3)n的所有正整数n
求证:n(n+1)(n-1)为3的倍数 (n为整数)
求一个算法把n个数中的第k大的数求出来,要求时间复杂度为O(n)
我想知道类似(x+n)(x+m)=X(平方)+(n+m)x+nm (n m为实数)的逆运算(写详细哦~~)
求BinRec(n)非递归算法
O(n) 排序算法
1+(-2)+3+(-4)+......+[(-1)的n+1次方]n (n为自然数)等于多少?
(1) 数列{n+1/2^n}的前n项和为
求比较n^(n+1)和(n+1)^n的大小(n为自然数)