Algoritmų kūrimo ir analizės Laboratorinio darbo Nr.5 ataskaita.
Užduotis: Reikia realizuoti Kruskalo algoritmą, kai duomenų struktūra masyvas. Atlikti tyrimus fiksuojant laikus ir operacijų skaičių. Tam paimti penkis taškus.
Reikia realizuoti Kruskalo algoritmą, kai duomenų struktūra masyvas. Atlikti tyrimus fiksuojant laikus ir operacijų skaičių. Tam paimti penkis taškus.
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
typedef int mas [502];
typedef int mas1 [4];
typedef mas1 matr [3000];
//-----------------------------------
void meniu();
void pasirink(int &, int &, mas &, matr &, int &kiek1);
void pranesimas5 ();
void Rezultatai (mas &, int &, matr &, int &);
void Uzduotis ();
void Formavimas ( mas &, matr &, int , int &);
void Sujungti ( mas &, matr , int , int, int & );
void Rusiuoti ( matr &, int );
void Spausd ( mas , int , matr , int );
//---------------------------------------------------------
void main()
{
clrscr();
meniu();
textbackground(BLACK);
textcolor(WHITE);
window(1,1,80,25);
clrscr();
}
//------------------------------------------------------------
void meniu()
{
int kiek= 100;
mas X;
matr X1;
int kiek1 = 0;
int kl;
int poz=1;
do
{
textcolor(BLACK);
if (poz==1)
textbackground(RED);
else textbackground(GREEN);
window(3,2,20,2);
cprintf("UZDUOTIS ");
if (poz==2)
{ textbackground(RED); poz=2;}
else textbackground(GREEN);
window(3,4,20,4);
cprintf("REZULTATAI ");
kl = getch();
if (kl==0) kl=getch();
if ((kl==72)&&(poz!=1)) poz-=1;
else if ((kl==72)&&(poz==1)) poz=2;
else if ((kl==80)&&(poz!=2)) poz+=1;
else if ((kl==80)&&(poz==2)) poz=1;
if (kl==13)
pasirink(poz, kiek, X, X1, kiek1);
}
while (kl!=27);
}
//-------------------------------------------------------------
void pasirink(int &poz, int &kiek, mas &X, matr &X1, int &kiek1)
{
switch (poz) {
case 1:{
Uzduotis ();
break;}
case 2: {
Rezultatai (X, kiek, X1, kiek1);
break;}
}
}
//---------------------------------------------------------------
void Rezultatai (mas &X, int &kiek, matr &X1, int &kiek1 )
{
kiek = 100;
int d;
pranesimas5 ();
cprintf("*************************************************************\n");
gotoxy (1,2);
cprintf("* Grafo v_sk * Laikas * Operaciju skaicius * Briaun_sk *\n");
gotoxy (1,3);
cprintf("*************************************************************\n");
d = 4;
int op_sk;
float laikas;
clock_t start, end;
while ( kiek <= 500)
{
start = clock ();
Formavimas (X, X1,kiek,kiek1);
Rusiuoti ( X1, kiek1);
Sujungti ( X, X1,kiek,kiek1, op_sk);
end = clock ();
laikas =(end - start)/CLK_TCK;
gotoxy (1,d);
cprintf ("* %-8d * %-8.8f * %-8d * %-8d *", kiek, laikas, op_sk, kiek1);
d++;
kiek = kiek + 100;
}
gotoxy (1, d);
cprintf("*************************************************************\n");
}
//------------------------------------------------------------
void pranesimas5()
{
window(18,8,80,25);
textbackground(BLACK);
textcolor(LIGHTCYAN);
clrscr();
}
//------------------------------------------------------------
void Uzduotis ()
{
pranesimas5 ();
gotoxy (1,3);
cprintf (" Realizuoti KRUSKALO algoritma, kai duomenu \n");
gotoxy (1,4);
cprintf (" struktura...
Šį darbą sudaro 728 žodžiai, tikrai rasi tai, ko ieškai!
★ Klientai rekomenduoja
Šį rašto darbą rekomenduoja mūsų klientai. Ką tai reiškia?
Mūsų svetainėje pateikiama dešimtys tūkstančių skirtingų rašto darbų, kuriuos įkėlė daugybė moksleivių ir studentų su skirtingais gabumais. Būtent šis rašto darbas yra patikrintas specialistų ir rekomenduojamas kitų klientų, kurie po atsisiuntimo įvertino šį mokslo darbą teigiamai. Todėl galite būti tikri, kad šis pasirinkimas geriausias!
Norint atsisiųsti šį darbą spausk ☞ Peržiūrėti darbą mygtuką!
Mūsų mokslo darbų bazėje yra daugybė įvairių mokslo darbų, todėl tikrai atrasi sau tinkamą!
Panašūs darbai
Atsisiuntei rašto darbą ir neradai jame reikalingos informacijos? Pakeisime jį kitu nemokamai.
Pirkdamas daugiau nei vieną darbą, nuo sekančių darbų gausi 25% nuolaidą.
Išsirink norimus rašto darbus ir gauk juos akimirksniu po sėkmingo apmokėjimo!