12 Kasım 2018 Pazartesi

STL Merge (Birleştirme) Algoritmaları

Giriş
STL algoritmalarını işlevlerine göre gruplamak anlamayı çok daha kolaylaştırıyor. Aşağıdaki algoritmalar sıralı dizileri yine sıralı olarak birleştirme algoritmalarını gösteriyor.

inplace_merge metodu
Sıralı olan iki farklı diziyi yine sıralı olacak şekilde birleştirir.
Örnek
Şöyle yaparız. Başı sıralı ancak sonu sıralı olmayan tab vector'ü verilmiş. Sıralı olan n tane eleman atlandıktan sonra, geri kalan elemanlar kendi aralarında sıralanıyor. Daha sonra aynı vector'ün içindeki iki farklı sıralı dizi birleştiriliyor.
void foo( std::vector<int> & tab, int n ) {
     std::sort( begin(tab)+n, end(tab));
     std::inplace_merge(begin(tab), begin(tab)+n, end(tab));
}
merge metodu
std::merge metodu yazısına taşıdım.

Hiç yorum yok:

Yorum Gönder