早教吧 育儿知识 作业答案 考试题库 百科 知识分享

数据结构与算法一严格升序的整型数组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)。那么你设计的高效算法的时间复杂度是
▼优质解答
答案和解析
#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();
}
看了数据结构与算法一严格升序的整型...的网友还看了以下: