Kapitola 2.1. |
Vyhľadávanie v neusporiadanom zozname |
|
|
Záznamy sú zväčša pre jednoduchosť pridávané na začiatok alebo na koniec zoznamu. Pri takomto spôsobe pridávania nových záznamov je zrejmé, že záznamy v zozname nie sú usporiadané. Algoritmy, ktoré sú používané na vyhľadávanie v takomto poli sú podobné ako algoritmy používané pre vyhľadávanie v neusporiadanom poli. Pri opise nasledujúcich algoritmov budeme uvažovať s alternatívou, kedy je posledný záznam zoznamu ukončený nulovým ukazovateľom a teda zoznam nie je zreťazený dokola.
|
Triedy použité na analýzu a testovanie vybraných algoritmov |
Ako môžeme vidieť, členskými premennými určenými na štatistické hodnotenie a porovnávanie algoritmov sú počty porovnaní a posunutí v zozname. Ďalšou porovnávanou hodnotou algoritmov bude ich čas trvania.
|
//zaznam pre jednosmerne zretazeny zoznam
class CZaznam_JZ {
int hodnota_; //hodnota zaznamu
CZaznam_JZ* dalsi_; //ukazovatel na nasledujuci zaznam
public:
.
.
.
};
//jednosmerne zretazeny zoznam skladajuci sa z instancii triedy CZaznam_JZ
class CZoznam_JZ {
CZaznam_JZ* prvy_; //ukazovatel na prvy zaznam zoznamu
//statisticke premenne na analyzu poctu roznych druhov porovnani a posunuti
int p_a_porovnani_;
int p_b_porovnani_;
int p_c_porovnani_;
int p_posunuti_;
public:
.
.
.
}; |
|