1、设a[0:n-1]是一个已排好序的数组。请改写二分搜索算法,使得当搜索元素x不在数组中时,返回小于x的最大元素的位置I和大于x的最大元素位置j。当搜索元素在数组中时,I和j相同,均为x在数组中的位置。
2、设有n个不同的整数排好序后存放于t[0:n-1]中,若存在一个下标I,0≤i<n,使得t[i]=i,设计一个有效的算法找到这个下标。要求算法在最坏的情况下的计算时间为O(logn)。
三、实验提示
1、用I,j做参数,且采用传递引用或指针的形式带回值。
bool BinarySearch(int a[],int n,int x,int& i,int& j)
{
int left=0;
int ri ght=n-1;
while(left<right)
{
int mid=(left+right)/2;
if(x==a[mid])
{
i=j=mid;
return true;
}
if(x>a[mid])
left=mid+1;
else
right=mid-1;
}
i=right;
j=left;
return false;
}
2
int SearchTag(int a[],int n,int x)
{
int left=0;
int right=n-1;
while(left<right)
{
int mid=(left+right)/2;
if(x==a[mid]) return mid;
if(x>a[mid])
right=mid-1;
else
left=mid+1;
}
return -1;
}
核心的算法已经有了,谁能帮忙看看对不对,如果对的话请能帮忙完善一下,就是可以在dos窗口接受用户输入值,然后输出结果。几年没用到C和C++了,现在临时要用,实在没时间在去看之类的书,希望哪位好心能帮一下忙,十分感谢,
非常感谢,能否将第二道题完善呢 不用用户输入也行 直接定义一个数组来测试也可以 但能输出结果 不胜感激
6.5乘7.7乘2.1简便算法分析急求
6.5*7.7*2.1 =6.5*0.7*11*2.1 =4.55*11*2.1 =4.55*2.1*11 =4.55*(2+0.1)*11 =(4.55*2+4.55*0.1)*11 =(9.1+0.455)*11 =9.555*11 =9.555*(10+1)=9.555*10+9.555*1 =95.55+9.555 =105.105 ...
急求简便算法解题1、6666×1111+2222×66672、1991×199219921992-1992×...
解: 6666×1111+2222×6667 =6666×1111+1111×2×6667 =6666×1111×1111+13334 =1111×(13334+6666) =1111×20000 =22220000 (2) 1991X199219921992─1992X199119911991 =(1992-1)X199219921992-1992X(199219921992-1000110001) =1992X199219921992-199219921992-1992X199219921992+1992...
高中数学!必修三算法部分的题目!急求解答~~
第一步:输入i=1,S=0 二:S=S+i 三:i=i+1 四:如果i<=100,返回第二步 五:输出S 2.第二题思路:Ax+By+C=0相垂直的直线可用Bx-Ay+m=0表示,m待定。不能简单的用斜率相乘为-1代替(要考虑直线与坐标轴垂直的特殊情况,Bx-Ay+m=0就不会有矛盾,已包含了所有情况,想想为什么?)...
算法问题!急求!
假定n个数x_1,...,x_n互不不同(反正是考虑最坏情况),那么一共有n!种可能的次序 给定一个基于比较的排序算法,把每一步比较运算作为一个节点,可以构造出一棵二叉判定树,它的每个叶节点对应于一种次序 既然一共有n!个叶节点,那么二叉树的深度至少是Θ(log(n!))=Θ(n*log(n)),所以...
急求这道题的算法和答案!!在线等!
把两个人各拿一次当作一轮,在每一轮,两人最多取球1+2=3(个),如果只有这3个球的话,你要想获胜,就必须保证后拿,即与第一个人拿的球数的和是3的倍数,比如,第一个人拿一个,你就拿两,如果第一个人拿两个,你就拿一个。现在有25个球,25=8×3+2,所以,你要想获胜,就必须...
请聪明的有心人回答下面这道题,谢谢。急求。请详细写出您解答的思路和...
所以第二名至少平2局 假设:第1:17,第二:16 那么第三:13 90-17-16-13=44 "第四名与最后四名的得分和相同"把后四名看成一个人.得到第四名一定>44\/4=11,所以第四名只能是12分 那么44-12-12=20分,就是说第五加第六=20,第五<12 所以只有:20=11+9=10+10得到,第五=11分....
有两道题急求解
1 原式=5\/6-1\/5+1\/6=1-1\/5=4\/5 2 从甲箱里取出五分之十九放入乙箱 ? 错了吧
急求下面这两道操作系统题的答案和解释
2.FIFO就是物理页面容量不足时,把最早进入的那个页面移出来。LRU就是把最近最少用的页面移出来,你只需要顺着使用序列从右往左看,最后出现的那个页面就是最近最少用的。OPT就是根据将来的访问情况判断,未来哪个页面被使用的时刻最晚,就把那个页面交换出去。此外注意最开始的时候内存里是空的,因此...
急求一道概率题的解法,要详细的分析.?
先选取0.5的话 只有一种方法 选0 (0.5,0)先选取0.4的话 有两种方法 0和0.1(0.4,0) (0.4,0.1)先选取0.3的话 有三种方法 0,0.1和0.2(0.3,0) (0.3,0...,1,急求一道概率题的解法,要详细的分析.在区间(0,1) 中随机地取出两个数,则两数之和小于0.6 的概率是___...
高一数学两道 急求!!!
1.(1)sinAsinB-cosAcosB=-cos(A+B),因为A、B∈(π\/4,π\/2),所以A+B在(π\/2,π),cos(A+B)<0,则-cos(A+B)>0,sinAsinB-cosAcosB>0.即sinAsinB>cosAcosB。(2)向量a*向量b=1,即 根号3*sinA-cosA=1,cos(A+π\/3)=-1\/2,又由于0<A<π,所以,A+π\/3=(2π)\/...