বাছাই হল উপাদানগুলিকে আরোহী (বা) অবরোহ ক্রমে সাজানোর প্রক্রিয়া।
বাছাইয়ের প্রকারগুলি
সি ভাষা পাঁচটি সাজানোর কৌশল প্রদান করে, যা নিম্নরূপ -
- বুদবুদ বাছাই (বা) বিনিময় সাজান
- নির্বাচন বাছাই
- সন্নিবেশ বাছাই(বা) লিনিয়ার সর্ট
- দ্রুত বাছাই (বা) পার্টিশন বিনিময় বাছাই
- সর্ট মার্জ (বা) এক্সটার্নাল সর্ট
সর্ট মার্জ করুন
মার্জ সর্ট একটি বিভক্ত এবং জয়ী পদ্ধতি। এটি একটি অ্যারেকে দুই অর্ধে ভাগ করে, পুনরাবৃত্তিমূলকভাবে জয় করে এবং একত্রিত করে।
আসুন একটি উদাহরণ বিবেচনা করি যা নীচে দেওয়া হল -
একটি সাজানো না করা অ্যারে নিন এবং অ্যারে সাজানোর জন্য মার্জ সাজানোর কৌশল প্রয়োগ করুন।
38, 27, 43, 3, 9, 82, 10
এখন, নিচে দেখানো −
অনুসারে সাজানোর মাধ্যমে একটি অ্যারে একত্রিত করুন
উদাহরণ
মার্জ সর্ট টেকনিক −
ব্যবহার করে উপাদানগুলিকে সাজানোর জন্য C প্রোগ্রামটি নিচে দেওয়া হল#include <stdio.h> #define max 10 int a[11] = { 10, 14, 19, 26, 27, 31, 33, 35, 42, 44, 0 }; int b[10]; void merging(int low, int mid, int high) { int l1, l2, i; for(l1 = low, l2 = mid + 1, i = low; l1 <= mid && l2 <= high; i++) { if(a[l1] <= a[l2]) b[i] = a[l1++]; else b[i] = a[l2++]; } while(l1 <= mid) b[i++] = a[l1++]; while(l2 <= high) b[i++] = a[l2++]; for(i = low; i <= high; i++) a[i] = b[i]; } void sort(int low, int high) { int mid; if(low < high) { mid = (low + high) / 2; sort(low, mid); sort(mid+1, high); merging(low, mid, high); } else { return; } } int main() { int i; printf("List before sorting\n"); for(i = 0; i <= max; i++) printf("%d ", a[i]); sort(0, max); printf("\nList after sorting\n"); for(i = 0; i <= max; i++) printf("%d ", a[i]); }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত আউটপুট তৈরি করে −
List before sorting 10 14 19 26 27 31 33 35 42 44 0 List after sorting 0 10 14 19 26 27 31 33 35 42 44