プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

挿入ソート


この並べ替え手法は、カードの並べ替え手法と似ています。つまり、挿入ソートメカニズムを使用してカードを並べ替えます。この手法では、データセットから1つの要素を取得し、データ要素をシフトして、取得した要素をデータセットに挿入し直す場所を作成します。

挿入ソート手法の複雑さ

  • 時間計算量:最良の場合はO(n)、平均および最悪の場合はO(n ^ 2)
  • スペースの複雑さ:O(1)

入力と出力

Input:
The unsorted list: 9 45 23 71 80 55
Output:
Array before Sorting: 9 45 23 71 80 55
Array after Sorting: 9 23 45 55 71 80

アルゴリズム

insertionSort(array, size)

入力- データの配列、および配列内の総数

出力&− ソートされた配列

Begin
   for i := 1 to size-1 do
      key := array[i]
      j := i
      while j > 0 AND array[j-1] > key do
         array[j] := array[j-1];
         j := j – 1
      done
      array[j] := key
   done
End

#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];//take value
      j = i;

      while(j > 0 && array[j-1]>key) {
         array[j] = array[j-1];
         j--;
      }

      array[j] = key;//insert in right place
   }
}

int main() {
   int n;
   cout << "Enter the number of elements: ";
   cin >> n;
   int arr[n]; //create an array with given number of elements
   cout << "Enter elements:" << endl;

   for(int i = 0; i<n; i++) {
      cin >> arr[i];
   }

   cout << "Array before Sorting: ";
   display(arr, n);
   insertionSort(arr, n);
   cout << "Array after Sorting: ";
   display(arr, n);
}

出力

Enter the number of elements: 6
Enter elements:
9 45 23 71 80 55
Array before Sorting: 9 45 23 71 80 55
Array after Sorting: 9 23 45 55 71 80

  1. 挿入ソート用のPythonプログラム

    この記事では、Python3.xでの挿入ソートの実装について学習します。またはそれ以前。 アルゴリズム 1. Iterate over the input elements by growing the sorted array at each iteration. 2. Compare the current element with the largest value available in the sorted array. 3. If the current element is greater, then it leaves the element in its place &n

  2. Rubyでの挿入ソートを理解する

    注:これは、Rubyを使用したさまざまなソートアルゴリズムの実装を検討するシリーズのパート4です。パート1ではバブルソート、パート2では選択ソート、パート3ではマージソートについて説明しました。 データを並べ替えるためのさまざまな方法を引き続き検討するため、挿入並べ替えに目を向けます。挿入ソートが好きな理由はたくさんあります!まず、挿入ソートは安定です。 、これは、等しいキーを持つ要素の相対的な順序を変更しないことを意味します。 インプレースアルゴリズムでもあります 、は、並べ替えられた要素を格納するための新しい配列を作成しないことを意味します。最後に、挿入ソートは、すぐにわかるように、実