Добавил:
Tushkan
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы / ЛЗ3 / Unit1
.cpp//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include "Unit2.h"
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <dos.h>
//---------------------------------------------------------------------------
struct time t1, t2;
#pragma argsused
struct tip
{int y[100];
int key;
};
struct tip x[10000];
int Search2(struct tip z[], int n,int Arg1,int Arg2, int Gn, int &Gv)
{
int g1, g2, i, j, k;
int ng, vg;
ng = vg = 100000;
if (ng==100000)
{g1 = 0;
g2 = n;
}
else
{
g1 = ng;
g2 = vg + 1;
}
if (g1 >= g2)
exit;
k = g2;
i = g1;
do
{
j = (i + k)/2;
if (z[j].key > Arg2)
k = j;
else
i = j + 1;
}
while (i!=k);
Gv = k;
if (k==g1)
{
Gn = Gv - 1;
exit;
}
k--;
i = g1 - 1;
do
{
j = (i + k + 1)/2;
if (z[j].key < Arg1)
i = j;
else
k = j - 1;
}
while (i!=k);
Gn = i;
return Gn;
}
//---------------------------------------------------------------------------
void main()
{
int n, i, j, a, b, Gn, Gv;
clock_t start, end;
char c;
do
{
srand(time(NULL));
for (i=0;i<10000;i++)
x[i].key = 0 + rand()%1000;
for (i=0;i<10000;i++)
for (j=0;j<100;j++)
x[i].y[j] = 0 + rand()%1000;
Sing(x,10000);
start = clock();
for(i=0;i<5000000;i++)
Gn = Search2(x, 10000, 100*i, 150*i+5, Gn, Gv);
end = clock();
printf("The time was: %f\n", (end - start) / CLK_TCK);
printf("\n");
}
while ((c = getchar()) != 'y');
}
//---------------------------------------------------------------------------
Соседние файлы в папке ЛЗ3