קוד:
#include <stdio.h>
#include <conio.h>
int flag;
int func(int arr[], int low, int high){
int mid,i,j,k;
if(low<high)
{
mid=(low+high)/2;
func(arr,low,mid);
func(arr,mid+1,high);
i=low;
j=mid+1;
k=i;
int c[500];
while((i<=mid)&&(j<=high))
{
if(arr[i]<arr[j])
{
c[k]=arr[i];
k++;
i++;
}
else if (arr[i]==arr[j]){
flag=1;
k++;
i++;
}else{
c[k]=arr[j];
k++;
j++;
}
}
while(i<=mid)
{
c[k]=arr[i];
k++;
i++;
}
while(j<=high)
{
c[k]=arr[j];
k++;
j++;
}
for(i=low;i<k;i++)
{
arr[i]=c[i];
}
} return flag;
}
int IsThere(int arr[], int size){
flag = 0;
return func(arr,0,size-1);
}
int main(){
int arr[] = {411, 41, 11, 33,19, 3, 1,50, 111, 4};
printf("%d",IsThere(arr,10));
getch();
}