Grafy a tabuľky

Vyhľadávanie extrému v strome

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

//vyhladavanie minimalnej hodnoty v strome urcenom uzlom "uzol" pomocou cyklu while
//funkcia vracia ukazovatel na uzol s minimalnou hodnotou
CUzol* CStrom::najdi_cykl_min_uzol(CUzol* uzol){
	if (++p_a_porovnani_ && uzol) 
		while (++p_a_porovnani_ && uzol->lavy()) {++p_a_cyklov_; uzol=uzol->lavy();}
	return uzol;
}
Počet porovnaní, cyklov a času trvania algoritmu pre úspešné vyhľadávanie.
počet uzlov v strome p_a_porovnani_ p_a_cyklov_ čas
15 5,000 3,000 0,3124
127 8,000 6,000 0,5528
1.023 11,00 9,000 0,8289
8.191 14,00 12,00 1,048
65.535 17,00 15,00 1,348
Počet cyklov závisí v tomto prípade iba od toho, v akej hĺbke sa nachádza hľadaná hodnota. Pre strom s n uzlami je to práve (log(2) n). Tento algoritmus však vždy robí o jeden cyklus menej.
 
 

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

Závislosť dĺžky trvania tohto algoritmu je od počtu uzlov v strome logaritmická.
  15 127 1.023 8.191 65.535
hľadanie minima 0,3124 0,5528 0,8289 1,048 1,348
 
 
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.