একটি অ্যারে সম্পর্কিত ডেটা আইটেমগুলির একটি গ্রুপ যা একটি সাধারণ নাম ভাগ করে। একটি অ্যারের একটি নির্দিষ্ট মান তার "সূচক নম্বর" এর সাহায্যে চিহ্নিত করা হয়।
অ্যারে ঘোষণা করা হচ্ছে
একটি অ্যারে ঘোষণা করার জন্য সিনট্যাক্স নিম্নরূপ -
datatype array_name [size];
উদাহরণস্বরূপ,
float marks [50]
এটি 50টি ফ্লোট উপাদান সমন্বিত একটি অ্যারে হিসেবে 'চিহ্ন' ঘোষণা করে।
int number[10]
এটি সর্বাধিক 10টি পূর্ণসংখ্যা ধ্রুবক ধারণ করার জন্য একটি অ্যারে হিসাবে 'সংখ্যা' ঘোষণা করে।
প্রতিটি উপাদান একটি "অ্যারে সূচক" ব্যবহার করে চিহ্নিত করা হয়।
অ্যারে সূচক ব্যবহার করে অ্যারের উপাদানগুলি অ্যাক্সেস করা সহজ৷
৷আমরা মার্জ সাজানোর জন্য যে যুক্তিটি ব্যবহার করি তা হল নিম্নরূপ −
void MergeSort(int *array, int left, int right){ int middle = (left+right)/2; if(left<right){ //Sorting the left part MergeSort(array, left, middle); //Sorting the right part MergeSort(array, middle + 1, right); // Merge the two parts Merge(array, left, middle, right); } }
সমস্ত উপাদান একত্রিত করার জন্য যুক্তি নিম্নরূপ -
void Merge(int *array, int left, int middle, int right){ int tmp[right - left + 1]; int pos = 0, leftposition = left, rightposition = middle + 1; while (leftposition <= middle && rightposition <= right){ if (array[leftposition] < array[rightposition]){ tmp[pos++] = array[leftposition++]; }else{ tmp[pos++] = array[rightposition++]; } } while (leftposition <= middle) tmp[pos++] = array[leftposition++]; while (rightposition <= right) tmp[pos++] = array[rightposition++]; int i; for (i = 0; i < pos; i++){ array[i + left] = tmp[i]; } return; }
প্রোগ্রাম
সাজানোর জন্য C প্রোগ্রামটি −
একত্রিত করা হয়েছে#include <stdio.h> void Merge(int * , int , int , int ); void MergeSort(int *array, int left, int right){ int middle = (left+right)/2; if(left<right){ //Sorting the left part MergeSort(array, left, middle); //Sorting the right part MergeSort(array, middle + 1, right); // Merge the two parts Merge(array, left, middle, right); } } void Merge(int *array, int left, int middle, int right){ int tmp[right - left + 1]; int pos = 0, leftposition = left, rightposition = middle + 1; while (leftposition <= middle && rightposition <= right){ if (array[leftposition] < array[rightposition]){ tmp[pos++] = array[leftposition++]; } else{ tmp[pos++] = array[rightposition++]; } } while (leftposition <= middle) tmp[pos++] = array[leftposition++]; while (rightposition <= right) tmp[pos++] = array[rightposition++]; int i; for (i = 0; i < pos; i++){ array[i + left] = tmp[i]; } return; } int main(){ int size; printf("\n enter size of array:"); scanf("%d", &size); int array[size]; int i, j, k; printf("\n enter the elements in an array:"); for (i = 0; i < size; i++){ scanf("%d", &array[i]); } MergeSort(array, 0, size - 1);//calling sort function for (i = 0; i< size; i++){ printf("%d ", array[i]); } printf("\n"); return 0; }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
enter size of array:10 enter the elements in an array: 2 -10 34 -3 45 67 -89 34 23 67 -89 -10 -3 2 23 34 34 45 67 67