কম্পিউটার

C++ এ সাজানো অ্যারে


এখানে আমরা সাজানো অ্যারের কিছু মৌলিক ধারণা দেখব। কিছু পরপর মেমরি অবস্থানে একই ধরণের ডেটা ধরে রাখার জন্য অ্যারেগুলি একজাতীয় ডেটা কাঠামো। কখনও কখনও আমাদের উপাদানগুলিকে ব্যবহার করার জন্য সাজাতে হবে। তা ছাড়া আমরা একটি সাজানো অ্যারে তৈরি করতে পারি। এটি সর্বদা বাছাই করা হবে।

এই ক্ষেত্রে আমরা সাজানো অ্যারেতে সন্নিবেশ এবং মুছে ফেলার জন্য অ্যালগরিদমগুলি দেখতে পাব। যদি আমরা এটিতে কিছু উপাদান সন্নিবেশ করি তবে এটি স্বয়ংক্রিয়ভাবে সাজানো অবস্থানে স্থাপন করা হবে। তাই সন্নিবেশ করার পরে আমাদের এটিকে আবার সাজানোর দরকার নেই। যখন আমরা মুছে ফেলি, এটি উপাদানগুলিকে মুছে ফেলবে এবং উপাদানগুলিকে ডানদিকে স্থানান্তর করে খালি স্থান পূরণ করবে। যেহেতু আমরা সাজানো অ্যারে ব্যবহার করছি, আমরা বাইনারি সার্চ অ্যালগরিদম ব্যবহার করব উপাদানটি মুছে ফেলার আগে খুঁজে বের করার জন্য৷

অ্যালগরিদম

insertSorted(arr, n, key):
Begin
   if n >= max size of the array, then return
   otherwise i := n – 1
   while i >= 0 and arr[i] > key, do
      arr[i + 1] := arr[i]
      i := i - 1
   done
   arr[i + 1] := key
   n := n + 1
End
deleteSorted(arr, n, key):
Begin
   pos := search key into arr
   if pos is -1, then item is not found, and return
   otherwise i := pos
   while i < n – 1, do
      arr[i] := arr[i + 1]
      i := i + 1
   done
   n := n + 1
End

উদাহরণ

#include <iostream>
#define MAX 10
using namespace std;
void display(int arr[], int n){
   for(int i = 0; i <n; i++){
      cout << arr[i] << " ";
   }
   cout << endl;
}
int search(int arr[], int low, int high, int key){
   if (high < low)
      return -1;
   int mid = (low + high) / 2; /*low + (high - low)/2;*/
   if (key == arr[mid])
      return mid;
   if (key > arr[mid])
      return search(arr, (mid + 1), high, key);
   return search(arr, low, (mid - 1), key);
}
void insertSorted(int arr[], int &n, int key){
   if (n >= MAX){
      cout << "No place to insert";
      return;
   }
   int i;
   for (i = n - 1; (i >= 0 && arr[i] > key); i--)
      arr[i + 1] = arr[i];
   arr[i + 1] = key;
   n = n + 1;
}
void deleteSorted(int arr[], int &n, int key){
   int key_pos = search(arr, 0, n, key);
   if(key_pos == -1){
      cout << "Element is not present." << endl;
      return;
   }
   int i;
   for (i = key_pos; i < n - 1; i++)
      arr[i] = arr[i + 1];
   n = n - 1;
}
int main() {
   int arr[MAX];
   int n = 0;
   insertSorted(arr, n, 10);
   insertSorted(arr, n, 20);
   insertSorted(arr, n, 30);
   insertSorted(arr, n, 40);
   insertSorted(arr, n, 50);
   insertSorted(arr, n, 60);
   insertSorted(arr, n, 70);
   display(arr, n);
   deleteSorted(arr, n, 35);
   deleteSorted(arr, n, 40);
   deleteSorted(arr, n, 60);
   display(arr, n);
}

আউটপুট

10 20 30 40 50 60 70
Element is not present.
10 20 30 50 70

  1. C/C++ এ বহুমাত্রিক অ্যারে

  2. C++ এ অ্যাসোসিয়েটিভ অ্যারে

  3. সাজানো অ্যারে বাস্তবায়নের জন্য C++ প্রোগ্রাম

  4. জাভাতে k সাজানো অ্যারে মার্জ করুন