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

C++での挿入ソートの時間計算量の質問


挿入ソートの時間計算量はどれくらいですか?

時間計算量 入力量の関数として処理または実行するために一連のコードまたはアルゴリズムにかかる時間です。

挿入ソートの場合、時間計算量はO(n)のオーダーです。つまり、最良のシナリオではnの大きなOです。また、平均的または最悪のシナリオでは、複雑さはO(n 2 のオーダーです。 。

挿入ソートアルゴリズムを次の形式のnサイズの配列に適用すると、ソートの時間計算量はどうなりますか:6、5、8、7、10、9……I、i-1

上記の配列をソートするフォームの時間計算量はO(n)です。このアルゴリズムを注意深く見てみましょう。ここでは、すべてのペアが元の位置から交換されます。つまり、要素1と要素2の位置が交換され、3と4が交換されます。したがって、アルゴリズムの並べ替え中に、このアルゴリズムを並べ替えるのに必要な操作はn回だけです。

挿入ソートを定義し、挿入ソートのコードを記述しますか?

挿入ソートは、ソートされた配列内のその位置に要素を配置することによってデータ構造をソートするソートアルゴリズムです。

以下のコードは、挿入ソートの関数を示しています-

void insertionSort(int arr[], int n) {
   for (int i = 1; i < n; i++){
      int element = arr[i];
      int j = i-1;
      while (j >= 0 && arr[j] > element){
         arr[j+1] = arr[j];
         j = j-1;
      }
      arr[j+1] = element;
   }
}

  1. 挿入ソートを実装するC++プログラム

    このソート手法はカードソート手法と似ています。つまり、挿入ソートメカニズムを使用してカードをソートします。この手法では、データセットから1つの要素を取得し、データ要素をシフトして、取得した要素をデータセットに挿入し直す場所を作成します。 挿入ソート手法の複雑さ 時間計算量:最良の場合はO(n)、平均および最悪の場合はO(n2) スペースの複雑さ:O(1) Input − The unsorted list: 9 45 23 71 80 55 Output − Array after Sorting: 9 23 45 55 71 80 アルゴリズム in

  2. C#での挿入ソート

    挿入ソートは、一度に要素を取得し、それを配列内の正しい位置に挿入するソートアルゴリズムです。このプロセスは、配列がソートされるまで続けられます。 C#での挿入ソートを示すプログラムは次のとおりです。 例 using System; namespace InsertionSortDemo {    class Example {       static void Main(string[] args) {          int[] arr = new int[10] { 23, 9, 85