Buscas Em C
Trabalho Universitário: Buscas Em C. Pesquise 862.000+ trabalhos acadêmicosPor: salomao.tcn • 19/1/2014 • 439 Palavras (2 Páginas) • 231 Visualizações
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void quick_sort(int v[], int left, int right);
float search(int v[], int value);
float binary_search(int v[], int value);
int main(){
int i;
int v_seq[5000],v_bin[5000];
int value;
float time_seq=0;
float time_bin=0;
float m_seq=0;
float m_bin=0;
srand(time(NULL));
printf("\nPopulando os dois vetores...\n");
for (i=0; i < 5000; i++){
v_seq[i]= rand() % 10000;
v_bin[i]= rand() % 10000;
}
printf("\nOrdenando o vetor de busca binária...\n");
quick_sort(v_bin,0,4999);
for(i=0;i<500;i++){
value = rand() % 10000;
time_seq= time_seq + search(v_seq,value);
time_bin= time_bin + binary_search(v_bin,value);
}
m_seq= time_seq/500;
m_bin= time_bin/500;
printf("\nMédia de tempo para busca sequencial: %f ms \n",m_seq);
printf("\nMédia de tempo para busca binária: %f ms \n",m_bin);
return 0;
}
void quick_sort(int v[], int left, int right) {
int i, j, x, y;
i = left;
j = right;
x = v[(left + right) / 2];
while(i <= j) {
while(v[i] < x && i < right) {
i++;
}
while(v[j] > x && j > left) {
j--;
}
if(i <= j) {
y = v[i];
v[i] = v[j];
v[j] = y;
i++;
j--;
}
}
if(j > left) {
quick_sort(v, left, j);
}
if(i < right) {
quick_sort(v, i, right);
...