Grafy a tabuľky

Vyhľadávanie extrému (maxima)

Priemerné počty porovnaní vybraných implementácií

//najdenie maximalneho prvku (s najvacsou hodnotou) v poli
//funkcia vracia hodnotu maxima
template < class T, int velkost_ >  
T CPole < T, velkost_ > ::najdi_sekv_hodnotu_max(){
	T hodn_max=pole_[0];
	int index=1;
	while (++p_a_porovnani_ && index < velkost_) { 
		++p_a_cyklov_;
		if (++p_b_porovnani_ && pole_[index] > hodn_max) hodn_max=pole_[index];
		index++;
	}
	return hodn_max;
}
Počet porovnaní, cyklov a času trvania algoritmu pre úspešné vyhľadávanie.
počet prvkov v poli p_a_porovnani_ p_b_porovnani_ p_a_cyklov_ čas
10 10,00 9,000 9,000 0,1314
100 100,0 99,00 99,00 0,8590
1.000 1000,0 999,0 999,0 7,771
10.000 10000,0 9999,0 9999,0 76,60
100.000 100000,0 99999,0 99999,0 918,0
Na to, aby algoritmus dokázal nájsť maximum v neusporiadanom poli, musí ho celé prejsť. Keďže prvý prvok na začiatku prehlásime za minimum, je počet cyklov rovný n-1, podobne ako počet k tomu prislúchajúcich porovnaní. Celkový počet porovnaní je vždy rádovo 2*n (presnejšie n+n-1).
 
 

Závislost dĺžky času trvania algoritmu od veľkosti vstupného pola

Časová závislosť dĺžky trvania algoritmu od veľkosti vstupného poľa je lineárna. Výraznejšie odchýlky môžeme pozorovať iba pre veľmi malé (rádovo 10 prvkov) a veľmi veľké (rádovo 100.000 prvkov) polia.
  10 100 1.000 10.000 100.000
vyhľadávanie maxima 0,1314 0,8590 7,770 76,60 918,0
 
 

Porovnanie algoritmu s predchádzajúcimi algoritmami

Vyhľadávanie jedného extrému je veľmi podobne časovo náročné neúspešnému sekvenčnému vyhľadávaniu.
  10 100 1.000 10.000 100.000
neúspešné sekvenčné vyhľadávanie s p=0,9 0,1203 0,7900 7,310 72,80 962,0
vyhľadávanie jedného extrému 0,1314 0,8590 7,770 76,60 918,0
 
 
Poznámka: Algoritmy boli testované na počítači s procesorom AMD Athlon(tm) XP 1700+ a s 256 MB operačnou pamäťou pod operačným systémom Windows XP. Všetky časy uvedené v tabuľke sú v mikrosekundách.