यहां हम क्रमबद्ध सरणियों की कुछ बुनियादी अवधारणाओं को देखेंगे। सरणियाँ सजातीय डेटा संरचना हैं जो कुछ सन्निहित मेमोरी स्थानों में एक ही प्रकार के डेटा को धारण करती हैं। कभी-कभी हमें तत्वों को क्रमबद्ध करने की आवश्यकता होती है ताकि उनका उपयोग किया जा सके। इसके अलावा हम एक क्रमबद्ध सरणी बना सकते हैं। जो हमेशा क्रमबद्ध रहेगी।
इस मामले में हम क्रमबद्ध सरणी में सम्मिलन और विलोपन के लिए एल्गोरिदम देखेंगे। यदि हम इसमें कुछ तत्व डालते हैं, तो यह स्वचालित रूप से क्रमबद्ध स्थिति पर रखा जाएगा। इसलिए सम्मिलन के बाद हमें इसे फिर से क्रमबद्ध करने की आवश्यकता नहीं है। जब हम हटाते हैं, तो यह तत्व को हटा देगा, और दाईं ओर के तत्वों को स्थानांतरित करके खाली स्थान को भरेगा। चूंकि हम क्रमबद्ध सरणी का उपयोग कर रहे हैं, हम तत्व को हटाने से पहले खोजने के लिए बाइनरी खोज एल्गोरिदम का उपयोग करेंगे।
एल्गोरिदम
insertSorted(arr, n, key): Begin
if n >= सरणी का अधिकतम आकार, तो return
अन्यथा i := n - 1
जबकि i >= 0 और arr[i] > key, करें
arr[i + 1] := arr[i]
i := i - 1
किया
arr[i + 1] := key
n := n + 1
End
deleteSorted(arr, n, key): Begin
pos := arr में key खोजें
यदि pos -1 है, तो आइटम नहीं मिला, और return
अन्यथा i := pos
जबकि i < n - 1, करें
arr[i] := arr[i + 1]
i := i + 1
किया
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;
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 << "सम्मिलित करने के लिए कोई स्थान नहीं";
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 << "तत्व मौजूद नहीं है।" << 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 तत्व मौजूद नहीं है। 10 20 30 50 70