इस ट्यूटोरियल में, हम C++ STL का उपयोग करके इंसर्शन सॉर्ट को समझने के लिए एक प्रोग्राम पर चर्चा करेंगे।
इसमें हम गलत स्थिति पर मौजूद तत्व को खोजने के लिए std::upper_bound का उपयोग करते हैं, फिर ऐरे के अनसॉर्टेड भाग को घुमाकर इसे सॉर्टेड बनाते हैं।
उदाहरण
#include <bits/stdc++.h>
// इंसर्शन सॉर्ट करने के लिए फंक्शन
void insertionSort(std::vector<int> &vec){
for (auto it = vec.begin(); it != vec.end(); it++){
auto const insertion_point = std::upper_bound(vec.begin(), it, *it);
std::rotate(insertion_point, it, it+1);
}
}
// ऐरे प्रिंट करना
void print(std::vector<int> vec){
for( int x : vec)
std::cout << x << " ";
std::cout << '\n';
}
int main(){
std::vector<int> arr = {2, 1, 5, 3, 7, 5, 4, 6};
insertionSort(arr);
print(arr);
return 0;
}
आउटपुट
1 2 3 4 5 5 6 7