Kapitola 1.

Vyhľadávanie v poli prvkov

 
 
Najbežnejším vyhľadávacím problémom je hľadanie zadaného prvku v poli prvkov. K prvkom poľa pristupujeme priamo pomocou indexu (poradie prvku v poli). Ak je v poli n prvkov, potom možné indexy prvkov v poli sú od 0 do n-1. V poli môžu byť uchovávané rôzne druhy údajov. Tieto údaje môžu alebo nemusia byť v tomto poli zoradené.
 
Keďže sa v poli najčastejšie uchovávajú celé čísla, rozhodol som sa aj ja v nasledujúcej analýze venovať sa vyhľadávaniu čísiel. Ak by sme chceli v poli vyhľadávať nejaký iný typ údajov, mení sa len spôsob porovnávania hľadaného prvku s aktuálnym prvkom poľa. Na postupe krokov algoritmu alebo princípe jeho činnosti sa však nemení nič.
 
Výstupom týchto algoritmov je index hľadaného prvku v poli. Polia v ktorých budeme vyhľadávať však môžu obsahovať jednu konkrétnu hodnotu aj viac krát, preto je vhodné ozrejmiť si, že algoritmy budú poskytovať pri úspešnom vyhľadávaní na svojom výstupe index prvého nájdeného výskytu. Ak sa chceme dozvedieť iba to, či sa prvok v poli nachádza a nezáleží nám na tom, na ktorom mieste, výstupom algoritmu môže byť logická premenná typu pravda/nepravda.

Zoznam stránok venujúcich sa poliam

Porovnanie algoritmov pre polia

Trieda použitá na analýzu a testovanie vybraných algoritmov

Ako môžeme vidieť, členskými premennými triedy sú počty porovnaní a cyklov. Toto budú hneď po čase trvania algoritmu najdôležitejšie ukazovatele jeho efektívnosti.
 
//pole prvkov zadaneho typu, statisticke premenne a funkcie na vyhladavanie v tomto poli
template < class T, int velkost_=100 > 
class CPole {
	//pole prvkov zadaneho typu a zadanej velkosti
	T pole_[velkost_];
	//statisticke premenne na analyzu poctu roznych druhov porovnani a cyklov
	int p_a_porovnani_;
	int p_b_porovnani_;
	int p_c_porovnani_;
	int p_a_cyklov_;
	int p_b_cyklov_;
public:
.
.
.
};