কম্পিউটার টিউটোরিয়াল

C++ প্রোগ্রাম: ইনসার্শন সর্ট বাস্তবায়ন


এই সোর্টিং টেকনিক কার্ড সর্টিং টেকনিকের সাথে মিলিত, অন্য কথায় আমরা কার্ড সর্ট করার সময় ইনসার্শন সর্ট মেকানিজম ব্যবহার করি। এই টেকনিকের জন্য, আমরা ডেটা সেট থেকে একটি এলিমেন্ট নিই এবং ডেটা এলিমেন্টগুলো শিফট করি নেওয়া এলিমেন্টটি ডেটা সেটে ফিরে ইনসার্ট করার জায়গা তৈরি করার জন্য।

ইনসার্শন সর্ট টেকনিকের জটিলতা

  • সময় জটিলতা: বেস্ট কেসে O(n), গড় এবং ওasst কেসে O(n²)

  • স্পেস জটিলতা: O(1)

ইনপুট − আনসর্টেড লিস্ট: 9 45 23 71 80 55
আউটপুট − সর্টিংয়ের পর অ্যারে: 9 23 45 55 71 80

অ্যালগরিদম

insertionSort(array, size)

ইনপুট: একটি ডেটা অ্যারে, এবং অ্যারেতে মোট সংখ্যা

আউটপুট: সর্টেড অ্যারে

শুরু
    i := 1 থেকে size-1 পর্যন্ত
        key := array[i]
        j := i
        যতক্ষণ j > 0 AND array[j-1] > key
            array[j] := array[j-1]
            j := j - 1
        শেষ
        array[j] := key
    শেষ
শেষ

উদাহরণ কোড

#include <iostream>
using namespace std;

void display(int *array, int size) {
    for(int i = 0; i < size; i++)
        cout << array[i] << " ";
    cout << endl;
}

void insertionSort(int *array, int size) {
    int key, j;
    for(int i = 1; i < size; i++) {
        key = array[i];
        j = i;
        while(j > 0 && array[j-1] > key) {
            array[j] = array[j-1];
            j--;
        }
        array[j] = key;
    }
}

int main() {
    int n;
    cout << "এলিমেন্টের সংখ্যা দিন: ";
    cin >> n;
    int arr[n];
    cout << "এলিমেন্টগুলো দিন:" << endl;
    for(int i = 0; i < n; i++) {
        cin >> arr[i];
    }
    cout << "সর্টিংয়ের আগে অ্যারে: ";
    display(arr, n);
    insertionSort(arr, n);
    cout << "সর্টিংয়ের পর অ্যারে: ";
    display(arr, n);
}

আউটপুট

এলিমেন্টের সংখ্যা দিন: 6
এলিমেন্টগুলো দিন:
9 45 23 71 80 55
সর্টিংয়ের আগে অ্যারে: 9 45 23 71 80 55
সর্টিংয়ের পর অ্যারে: 9 23 45 55 71 80
  1. C++ প্রোগ্রাম: বাবল সর্ট বাস্তবায়ন

  2. C++ প্রোগ্রাম: বাকেট সর্ট বাস্তবায়ন

  3. C++ প্রোগ্রাম: র‍্যাডিক্স সর্ট বাস্তবায়ন

  4. দřen complexity constraint সহ কুইক সার্ট বাস্তবায়ন করার C++ প্রোগ্রাম