字典翻译 问答 其它 数据结构与算法一严格升序的整型数组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,元素个数为n。现将其前k(0≤k≤n)个元素整体移动到数组后面,得到数组B,使B数组的前n-k个元素恰好是A数组的后n-k个元素,B数组的后k个元素恰好是A数组的前k个元素,且前后两部分的内部升序仍保持不变。请设计一个算法在B数组中查找某个给定元素value。算法设计在函数searchValue中,函数头可采用searchValue(intB[],intvalue)。那么你设计的高效算法的时间复杂度是

路纲回答:
  #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();   }
点击显示
其它推荐
热门其它推荐
  • 其它