Anlayabildiğim kadarıyla inplace_merge, sıralama ile aynı şeyi yapar, yalnızca belirli durumlarda çalışır (Kapsayıcı zaten iki ayrı parçada olduğunda).C++ STL :: inplace_merge ile sort arasındaki fark nedir?
int first[] = {1,3,5,7};
int second[] = {2,4,6,8};
vector<int> v(8);
vector<int>::iterator it;
copy(first,first+4, v.begin());
copy(second,second+4, v.begin()+4);
inplace_merge(v.begin(), v.begin()+4, v.end())
:
Diğer bir deyişle, bu ikisi arasında bir fark yoktur.
int first[] = {1,3,5,7};
int second[] = {2,4,6,8};
vector<int> v(8);
vector<int>::iterator it;
copy(first,first+4, v.begin());
copy(second,second+4, v.begin()+4);
sort(v.begin(), v.end())
Tek fark verimlilik mi olacak?
-1 Soru, OP'nin algoritmalardan biri için en kötü durumu önerdiği senaryo mu? Belirli bir senaryo düşünüldüğünde, en kötü durum karmaşıklıklarının karşılaştırılması mantıklı değildir. –
@ Space_c0wb0y katılmıyorum, soru daha genel gibi görünüyor ve daha sonra bir örnek olarak, karmaşıklıkların inplace_merge asla sıralamadan daha yavaş olmayacağı anlamına gelmediğini ve bu cevabın istikrarı dikkate almadığını söyleyen bir örnek olarak kullandığını görüyoruz. –
Teşekkürler. Bu cevabı koyduğum diğer tek şey, inplace_merge'ın kararlı olması, sıralama (stabil_sort değil) ise nasıl sıralanabileceğidir. Ama soruyu cevapladığın şey. Cplusplus.com adresinde "manual" yazısını okumalıyım :) –