ホームページ >バックエンド開発 >C++ >選択ソートのための C プログラム

選択ソートのための C プログラム

PHPz
PHPz転載
2023-08-28 13:13:05802ブラウズ

選択ソートのための C プログラム

選択ソートは、配列から最小の数値を見つけて最初の位置に配置することで機能する積極的なアルゴリズムです。次に走査される配列は、最小の番号が存在する次のインデックスから開始されます。

この概念をより明確に説明するために例を挙げてみましょう。

配列 {6, 3, 8, 12, 9} があり、この配列の最小要素は 3 です。したがって、最初の位置に 3 を置くと、その後の配列は {3, 6, 8, 12, 9} のようになります。ここで再び最小の数値を見つけますが、今回は 3 がその場所にあるため、検索では考慮しません。次に小さい要素 6 を見つけ、2 番目の位置に 6 を含む配列を作成し、配列がソートされるまで配列内を再度検索します。

選択並べ替えアルゴリズムの仕組み -

選択並べ替えアルゴリズムは次の手順に従います

配列 {20, 12, 23, 55,21}# を考えてみましょう。

  • ## 配列の最初の要素を最小値に設定します。

    最小値 = 20

  • 最小値を次の要素と比較し、それが最小値より小さい場合は、その要素を最小値として割り当てます。これを配列の最後まで繰り返します。

    は 12 と比較されます: 20 > 12、最小値 = 12

    は 23 と比較されます: 12 は 55 と比較されます: 12 21 と比較: 12
  • 最小値を最初の位置 (インデックス 0) に配置します。 ) 配列の。

    Array = {12, 20,23, 55, 21}

  • 次の反復では、ソートされていない最初の要素からソートを開始します。

    Array = {12, 20,23, 55, 21}

    20 から検索を開始し、最小値の要素を次に配置します。

    反復 2:

    最小 = 20

    23 との比較: 20 55 との比較: 20 21 との比較: 20 最小値は変更されません、

    配列 = {12, 20, 23, 55, 21 }

    反復 3:

    最小値 = 23。

    55 との比較: 23 21 との比較: 23 > 21、最小値 = 21

    インデックスに移動された最小値 = 2

    配列 = {12, 20, 21, 55, 23}

    反復 4:

    最小値 = 55

    23 との比較: 23 最小値はインデックス 3 に移動されました 配列 = { 12 , 20 , 21 , 23 , 55 }

#include <stdio.h>
int main() {
   int arr[10]={6,12,0,18,11,99,55,45,34,2};
   int n=10;
   int i, j, position, swap;
   for (i = 0; i < (n - 1); i++) {
      position = i;
      for (j = i + 1; j < n; j++) {
         if (arr[position] > arr[j])
            position = j;
      }
      if (position != i) {
         swap = arr[i];
         arr[i] = arr[position];
         arr[position] = swap;
      }
   }
   for (i = 0; i < n; i++)
      printf("%d\t", arr[i]);
   return 0;
}

出力

0 2 6 11 12 18 34 45 55 99

以上が選択ソートのための C プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。