早教吧作业答案频道 -->其他-->
数据结构与算法一严格升序的整型数组A,元素个数为n。现将其前k(0≤k≤n)个元素整体移动到数组后面,得到数组B,使B数组的前n-k个元素恰好是A数组的后n-k个元素,B数组的后k个元素恰
题目详情
数据结构与算法
一严格升序的整型数组A,元素个数为n。现将其前k(0≤k≤n)个元素整体移动到数组后面,得到数组B,使B数组的前n-k个元素恰好是A数组的后n-k个元素,B数组的后k个元素恰好是A数组的前k个元素,且前后两部分的内部升序仍保持不变。请设计一个算法在B数组中查找某个给定元素value。算法设计在函数searchValue中,函数头可采用searchValue(int B[ ], int value)。那么你设计的高效算法的时间复杂度是
一严格升序的整型数组A,元素个数为n。现将其前k(0≤k≤n)个元素整体移动到数组后面,得到数组B,使B数组的前n-k个元素恰好是A数组的后n-k个元素,B数组的后k个元素恰好是A数组的前k个元素,且前后两部分的内部升序仍保持不变。请设计一个算法在B数组中查找某个给定元素value。算法设计在函数searchValue中,函数头可采用searchValue(int B[ ], int value)。那么你设计的高效算法的时间复杂度是
▼优质解答
答案和解析
#include<stdio.h>
swap(int *a,int *b,int n,int k)
{
int temp,j;
for(temp=0,j=0;temp<n;temp++)
if(k<n)
*b++ =a[k++];
else
*b++ =a[j++];
}
int searchValue(int B[ ], int value)
{
int i=0;
while(1)
if(value==B[i++]&&i<1000)
return i;
}
int main()
{
int a[5]={1,2,3,4,5};int b[5];
int i;
swap(a,b,5,2);
for(i=0;i<5;i++)
printf(" %d",a[i]);printf("\n");
for(i=0;i<5;i++)
printf(" %d",b[i]);
i=searchValue(b,4);
printf("\n %d",i);
getch();
}
看了数据结构与算法一严格升序的整型...的网友还看了以下:
袋有些相同球,其号为1的球1个,号为2的球2个…号为n的球n个.从袋任取一球,其号作随机变量u,u 2020-04-13 …
1.现有一个三位数,其个位数为a,十位上的数字为b,百位数上的数字为c,则这个三位数表示为2.方程 2020-04-27 …
几道同类的数学题!今有物不知其数,三三数之剩其二,五五数之剩其三,七七数之剩其二,问物几何?一数不 2020-05-02 …
已知5个不同的实数,任取两个求和得到10个和数,其中最小的三个和数依次为32、36、37,最大的两 2020-07-20 …
一个整数的个位是7,把7移至最高位上,其他数字顺序不变,新数是原来那个数的7倍.编程求出满足此条件 2020-07-25 …
如图,随机向大圆内投掷一点,记该点落在阴影区域内的概率为p1;记从个位数与十位数之和为奇数的两位数 2020-07-29 …
已知一个项数为偶数,首项为1的等比数列,其奇数项的和为85,偶数项的和为170,则这个等比数列的项 2020-07-30 …
1.几个不为零的有理数相乘,当负因数的个数为数时,积为正数;当负因数的个数为数时,积为负数;当其中 2020-07-31 …
一棵树T有5个度数为2的结点,3个度数为3的结点,4个度数为4的结点,2个度数为5的结点其余均是度数 2020-11-06 …
对数函数的底数为何要定义为大于0而不等于1呢?我看,当其底数<0时,等于0时,等于1是,都是符合函数 2020-12-08 …