Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> 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++ में, बहुआयामी सरणी को सरल शब्दों में सरणियों के सरणी के रूप में परिभाषित किया गया है। बहुआयामी सरणियों में डेटा को सारणीबद्ध रूप में (पंक्ति प्रमुख क्रम में) संग्रहीत किया जाता है। निम्न आरेख 3 x 3 x 3 आयाम वाले बहुआयामी सरणी के लिए स्मृति आवंटन रणनीति दिखाता है। एल्गोरिदम Begin    

  1. सी ++ प्रोग्राम सॉर्ट किए गए ऐरे को लागू करने के लिए

    एक क्रमबद्ध सरणी एक सरणी है जिसमें प्रत्येक तत्व को किसी क्रम में क्रमबद्ध किया जाता है जैसे संख्यात्मक, वर्णानुक्रम आदि। संख्यात्मक सरणी को सॉर्ट करने के लिए कई एल्गोरिदम हैं जैसे बबल सॉर्ट, इंसर्शन सॉर्ट, सेलेक्शन सॉर्ट, मर्ज सॉर्ट, क्विक सॉर्ट, ढेर सॉर्ट आदि। चयन सॉर्ट का उपयोग करके सरणी को सॉर्ट

  1. जावा में k सॉर्ट किए गए सरणियों को मर्ज करें

    हमें सरणियों की एक n संख्या दी गई है, मान लीजिए कि हम पूर्णांक प्रकार के तीन सरणियाँ अर्थात् arr1[], arr2[] और arr3[] लेते हैं। कार्य सभी दिए गए पूर्णांक सरणियों को इस तरह से मर्ज करना है कि परिणामी सरणी केवल रनटाइम में क्रमबद्ध हो। उदाहरण के साथ समझते हैं इनपुट - इंट a[]={21,22,23,24}; इंट बी[