বাছাই হল উপাদানগুলিকে আরোহী (বা) অবরোহ ক্রমে সাজানোর প্রক্রিয়া।
বাছাইয়ের প্রকারগুলি
সি ভাষা পাঁচটি সাজানোর কৌশল প্রদান করে, যা নিম্নরূপ -
- বুদবুদ বাছাই (বা) বিনিময় সাজান
- নির্বাচন বাছাই
- সন্নিবেশ বাছাই(বা) লিনিয়ার সর্ট
- দ্রুত বাছাই (বা) পার্টিশন বিনিময় বাছাই
- সর্ট মার্জ (বা) এক্সটার্নাল সর্ট
দ্রুত সাজান
এটি একটি ডিভাইড অ্যান্ড কনক্যুয়ার অ্যালগরিদম৷
৷- ধাপ 1 - একটি অ্যারে থেকে একটি উপাদান চয়ন করুন, এটিকে পিভট উপাদান হিসাবে কল করুন৷
- ধাপ 2 - একটি সাজানো না করা অ্যারে উপাদানকে দুটি অ্যারেতে ভাগ করুন৷
- ধাপ 3 − যদি পিভট এলিমেন্টের চেয়ে কম মান প্রথম সাব অ্যারের অধীনে আসে, তাহলে পিভটের থেকে বেশি মানের অবশিষ্ট উপাদানগুলি দ্বিতীয় সাব অ্যারেতে আসে।
নীচে দেওয়া একটি উদাহরণ বিবেচনা করুন, যেখানে
- P হল পিভট উপাদান।
- L হল বাম পয়েন্টার।
- R হল সঠিক পয়েন্টার।
উপাদানগুলি হল 6, 3, 7, 2, 4, 5।
এখন,
- পিভট স্থির অবস্থানে আছে।
- সমস্ত বাম উপাদান কম।
- সঠিক উপাদানগুলি পিভটের চেয়ে বড়৷ ৷
- এখন, অ্যারেটিকে 2টি সাব অ্যারে বাম অংশ এবং ডান অংশে ভাগ করুন৷
- বাম পার্টিশন নিন দ্রুত সাজানোর প্রয়োগ করুন।
এখন,
- পিভট স্থির অবস্থানে আছে।
- সমস্ত বাম উপাদান কম এবং সাজানো
- সঠিক উপাদানগুলি বৃহত্তর এবং সাজানো ক্রমে রয়েছে৷ ৷
- চূড়ান্ত বাছাই করা তালিকাটি দুটি সাব অ্যারেকে একত্রিত করছে 2, 3, 4, 5, 6, 7
উদাহরণ
দ্রুত সাজানোর কৌশল -
ব্যবহার করে উপাদানগুলিকে সাজানোর জন্য C প্রোগ্রামটি নিচে দেওয়া হল#include<stdio.h> void quicksort(int number[25],int first,int last){ int i, j, pivot, temp; if(first<last){ pivot=first; i=first; j=last; while(i<j){ while(number[i]<=number[pivot]&&i<last) i++; while(number[j]>number[pivot]) j--; if(i<j){ temp=number[i]; number[i]=number[j]; number[j]=temp; } } temp=number[pivot]; number[pivot]=number[j]; number[j]=temp; quicksort(number,first,j-1); quicksort(number,j+1,last); } } int main(){ int i, count, number[25]; printf("How many elements are u going to enter?: "); scanf("%d",&count); printf("Enter %d elements: ", count); for(i=0;i<count;i++) scanf("%d",&number[i]); quicksort(number,0,count-1); printf("Order of Sorted elements: "); for(i=0;i<count;i++) printf(" %d",number[i]); return 0; }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত আউটপুট তৈরি করে −
How many elements are u going to enter?: 10 Enter 10 elements: 2 3 5 7 1 9 3 8 0 4 Order of Sorted elements: 0 1 2 3 3 4 5 7 8 9