এই টিউটোরিয়ালে, আমরা সি++ STL-এ ইনসারশন সোর্ট সম্পর্কে আলোচনা করব।
এখানে আমরা std::upper_bound ব্যবহার করি ভুল পজিশনের এলিমেন্ট খুঁজে বের করতে, তারপর std::rotate ব্যবহার করি অনসোর্টেড অংশটিকে রোটেট করে সর্টেড করতে।
উদাহরণ
#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