Реализовать программу через М-блочный поиск - C (СИ)
Формулировка задачи:
#include <stdafx.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int A[10] = { 2, 3, 5, 7, 8, 1, 5, 7, 3, 1 };
int B[4] = { 0, 3, 5, 7 };
for (int i = 0; i < 4; i++)
{
int count = 0;
for (int j = 0; j < 10; j++)
if (B[i] == A[j]) count++;
if (count > 1) printf("%d\n",B[i]);
}
return 0;
}Решение задачи: «Реализовать программу через М-блочный поиск»
textual
Листинг программы
void block_search_ord(int a[], int n, int el)
{
int f=1; int i=0;
int l; int x=(int)pow(n,(1/2));
while ((i<=n)&&(f))
{
i=i+x;
if (i>n) i=n;
int r=i;
l=i-3;
if (el<a[i])
{
while ((l<=r)&&(el!=a[l]))
l++;
f=0;
if (el==a[l]) printf("this element on %i position", i);
else printf("there is no such element");
}
}
}