Sobes.tech
Junior — Middle

Aký je rozdiel medzi štruktúrou B-tree a HashMap v kontexte vyhľadávania údajov?

sobes.tech AI

Odpoveď od AI

B-strom je vyvážený vyhľadávací strom, ktorý uchováva údaje v zoradenom poradí a umožňuje vykonávať vyhľadávania, vkladanie a mazanie v čase O(log n). Vyhľadávanie v B-strome prebieha sekvenčným porovnávaním kľúča s prvkami uzlov.

HashMap je dátová štruktúra založená na hashovacej tabuľke, kde sú kľúče prevedené na indexy poľa pomocou hashovacej funkcie. Vyhľadávanie v HashMap sa zvyčajne vykonáva v priemernom čase O(1), ale v najhoršom prípade sa môže zhoršiť na O(n) pri kolíziách.

Hlavné rozdiely:

  • B-strom uchováva údaje v zoradenom tvare, čo umožňuje zoradené prechody a dotazy na rozsah.
  • HashMap poskytuje rýchlejší prístup podľa kľúča v priemere, ale nepodporuje zoradenie.
  • B-strom sa často používa v databázach a súborových systémoch na efektívnu prácu s veľkými objemami údajov na disku.

Príklad v PHP (zjednodušený):

// HashMap — asociatívny poľ
$hashMap = ['key1' => 'value1', 'key2' => 'value2'];
$hodnota = $hashMap['key1']; // rýchly prístup podľa kľúča

// B-strom nie je priamo implementovaný v PHP, ale dá sa predstaviť ako štruktúra s logikou vyhľadávania
// Tu je príklad pseudokódu pre vyhľadávanie v B-strome
function btreeSearch($node, $key) {
    // vyhľadávanie kľúča v uzle a prechod na deti
}