Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में क्रमबद्ध सरणियाँ


यहां हम क्रमबद्ध सरणियों की कुछ बुनियादी अवधारणाओं को देखेंगे। सरणियाँ सजातीय डेटा संरचना हैं जो कुछ सन्निहित मेमोरी स्थानों में एक ही प्रकार के डेटा को धारण करती हैं। कभी-कभी हमें तत्वों को क्रमबद्ध करने की आवश्यकता होती है ताकि उनका उपयोग किया जा सके। इसके अलावा हम एक क्रमबद्ध सरणी बना सकते हैं। जो हमेशा क्रमबद्ध रहेगी।

इस मामले में हम क्रमबद्ध सरणी में सम्मिलन और विलोपन के लिए एल्गोरिदम देखेंगे। यदि हम इसमें कुछ तत्व डालते हैं, तो यह स्वचालित रूप से क्रमबद्ध स्थिति पर रखा जाएगा। इसलिए सम्मिलन के बाद हमें इसे फिर से क्रमबद्ध करने की आवश्यकता नहीं है। जब हम हटाते हैं, तो यह तत्व को हटा देगा, और दाईं ओर के तत्वों को स्थानांतरित करके खाली स्थान को भरेगा। चूंकि हम क्रमबद्ध सरणी का उपयोग कर रहे हैं, हम तत्व को हटाने से पहले खोजने के लिए बाइनरी खोज एल्गोरिदम का उपयोग करेंगे।

एल्गोरिदम

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

  1. C/C++ में मल्टीडायमेंशनल ऐरे C/C++ में मल्टीडायमेंशनल ऐरे

    C/C++ में, मल्टीडायमेंशनल ऐरे को सरल शब्दों में ऐरे के ऐरे के रूप में परिभाषित किया जाता है। मल्टीडायमेंशनल ऐरे में डेटा टेबुलर फॉर्म में स्टोर होता है (रो मेजर ऑर्डर में)। निम्नलिखित डायग्राम 3 x 3 x 3 डायमेंशन वाले मल्टीडायमेंशनल ऐरे के लिए मेमोरी आवंटन रणनीति दिखाता है। एल्गोरिदम Begin ऐर

  1. - C++ प्रोग्राम: सॉर्टेड ऐरे कार्यान्वयन (सिलेक्शन सॉर्ट)

    सॉर्टेड ऐरे ऐरे जिसमें तत्व क्रमबद्ध क्रम में हों (संख्यात्मक, वर्णानुक्रमिक, आदि)। कई सॉर्टिंग एल्गोरिदम: बबल सॉर्ट, इन्सर्शन सॉर्ट, सिलेक्शन सॉर्ट, मर्ज सॉर्ट, क्विक सॉर्ट, हीप सॉर्ट। सिलेक्शन सॉर्ट अनसॉर्टेड भाग में सबसे छोटा तत्व ढूंढकर उसे शुरुआत से स्वैप करता है। O(n²) समय जटिलता। C++ प्रोग

  1. - जावा में K क्रमबद्ध सरणियों को मर्ज करें

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