Algoritmul de îmbinare de îmbinare pentru liste sortate

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 6 februarie 2019; verificările necesită 5 modificări .

Algoritmul merge join pentru liste sortate (merge join, sort merge join, sort-merge join) este un fel de algoritm de join .

Algoritmul primește două tabele și o condiție de unire ca intrare. Rezultatul muncii sale este un tabel cu rezultatele conexiunii.

Tabelele de intrare trebuie sortate după coloanele implicate în condiția de îmbinare. Unirea se realizează într-o singură scanare (trecere) a fiecăruia dintre tabelele de intrare. Adică, același rând este citit o singură dată, ceea ce oferă un avantaj față de unirea cu bucle imbricate .

Un exemplu simplu de  pseudocod :

//trebuie să se alăture Tabelului 1 și Tabelului 2 //după condiție: Table1.Column1 = Table2.Column2 //Pentru a simplifica exemplul, vom presupune că valorile din Coloana2 sunt unice Tabel1.Sortează(Coloana1); Table2.Sort(Column2); Table1.StandOnFirstRecord; Tabelul 2. Mutare la prima înregistrare; În timp ce Table1.NotLastRecord și Table2.NotLastRecord { Dacă Tabel1.Coloana1 < Tabel2.Coloana2 { Tabel1. Treceți la următoarea intrare; } Altfel Dacă Tabel1.Coloană1 = Tabel2.Coloană2 { Ieșire (Table1.CurrentRecord, Table2.CurrentRecord); Tabel1. Treceți la următoarea intrare; Tabelul 2. Treceți la următoarea intrare; } Altfel Dacă Tabel1.Coloană1 > Tabel2.Coloană2 { Tabelul 2. Treceți la următoarea intrare; } }

Beneficii

Dezavantaje

Link -uri