Grafy a tabuľky

Sekvenčné vyhľadávanie

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

//sekvencne vyhladavanie zadaneho prvku "hladany"
//funkcia vracia index zadaneho prvku v poli (v pripade neuspechu vyhladavania vracia -1) 
template < class T, int velkost_ > 
int CPole < T, velkost_ > ::najdi_sekv_index(T hladany){
	int index=0;
	while (++p_a_porovnani_ && index < velkost_) {
		++p_a_cyklov_;
		if (++p_b_porovnani_ && pole_[index]==hladany) return index;
		else index++;
	}
	return -1;
}
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 5,500 5,500 5,500 0,0809
100 50,50 50,50 50,50 0,4290
1.000 500,5 500,5 500,5 3,905
10.000 5000,5 5000,5 5000,5 38,10
100.000 50000,5 50000,5 50000,5 421,6
Z predchádzajúcej tabuľky je vidieť, že počet porovnaní pri priemernom úspešnom vyhľadávaní je rádovo 2*(n/2). Je to preto, lebo v priemernom prípade pri úspešnom vyhľadávaní je prvok nájdení približne uprostred poľa. Počet cyklov algoritmu je približne n/2 a v každom cykle urobí algoritmus 2 porovnania.
 
Počet porovnaní, cyklov a času trvania algoritmu pre neúspešné vyhľadávanie s p=0,9.
počet prvkov v poli p_a_porovnani_ p_b_porovnani_ p_a_cyklov_ čas
10 9,300 8,500 8,500 0,1203
100 98,08 97,12 97,12 0,7897
1.000 950,1 949,2 949,2 7,310
10.000 9543,4 9542,5 9542,5 72,80
100.000 97727,2 97726,2 97726,2 961,9
Pre zväčša neúspešné vyhľadávanie je počet porovnaní rádovo 2*n. Algoritmus musí totiž prejsť celé pole, aby zistil, že sa prvok v poli nenachádza. Preto je počet cyklov len o málo menší ako n. V každom cykle urobí algoritmus 2 porovnania.
 
 

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

Tento algoritmus má lineárnu časovú závislosť dĺžky trvania od veľkosti vstupného poľa. Pre 10-násobné zväčšenie vstupného poľa je aj čas potrebný na ukončenie algoritmu približne 10-násobne väčší. Pre malé polia je potrebný čas ovplyvňovaný samotným volaním funkcie. Pre väčšie polia môže byť čas ovplyvňovaný vymieňaním stránok v operačnej pamäti operačným systémom počítača.
  10 100 1.000 10.000 100.000
úspešné vyhľadávanie 0,0809 0,4290 3,910 38,10 422,0
neúspešné vyhľadávanie s p=0,9 0,1203 0,7900 7,310 72,80 962,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.