Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!

Valaki megtudná írni nekem a programot ?

445
Vizsgáld a lineáris keresés bonyolultságát. Írd ki a képernyőre, hogy mennyi a
végrehajtási idő (mp-ben), illetve a műveletek száma. Teszteld n = 10, 100, 1000 .....
1000000000 elemű sorozatra is. A sorozat elemei és a keresett érték is legyen
véletlenszerűen generálva. Alkalmazd a .h és .c fájl struktúrát.
Jelenleg 1 felhasználó nézi ezt a kérdést.
0
Középiskola / Informatika

Válaszok

5
Milyen programnyelv?
0

// 1. main.c

#include <stdio.h>
#include <stdlib.h>
#include "functions.h"
#include "time.h"

int main() {
clock_t begin = clock();
adder();
int *a;
int n;
scanf("%i", &n);

a = (int*)malloc(n*sizeof(int));
adder();
random_array(a, n, -10000, 10000);
printarray(a,n);
int searchednumber = random_num(-5000,5000);
printf("\nKeresett szam : %i \n", searchednumber);

if(searchnumber(searchednumber, a, n)){
printf("Sikeres talalat!");
}
else{
printf("Sikertelen talalat!");
}

outadder();
free(a);
clock_t end = clock();
double time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
printf("\nVEGE(selection):%lf\n", time_spent);
return 0;
}
0

// 2. functions.c

#include "functions.h"
#include "time.h"
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int N = 0; //muveletek szama
int random_num(int a, int b){
srand(time(0));
adder();
return rand()%(b-a+1)+a;
}
void random_array(int a[], int number, int num1, int num2)
{
srand(time(0));
for(int i = 0; i < number; ++i)
{
a[i] = (rand()%(num2-num1+1)+num1);
adder();
}
}
void printarray(int a[], int number){
printf("\n");
for(int i = 0; i < number; ++i){
printf("%i", a[i]);
adder();
}
}
int searchnumber(int searchednumber, int a[], int number){

for(int i = 0; i < number; ++i){
adder();
adder();
if(a[i] == searchednumber){

return 1;
}
}
return 0;
}
void adder(){
N++;
}
void outadder(){
adder();
printf("\nMuveletek szama:%i", N);
}
0

// 3. functions.h

#ifndef LABOR2_FUNCTIONS_H
#define LABOR2_FUNCTIONS_H
int random_num(int a, int b);
void random_array(int a[], int number, int num1, int num2);
int searchnumber(int searchednumber, int a[], int number);
void adder();
void outadder();
void printarray(int a[], int number);
#endif
0

3 különböző fájl van.

Ha nem látható át a kód, itt a pastebin:

main.c : https://pastebin.com/7hbd23bS
functions.c : https://pastebin.com/fTkB2zXa
functions.h : https://pastebin.com/fzVQeGGe
0