C言語での選択ソートの手順を説明する
選択ソートは、配列から最小の数を見つけてそれを最初の位置に配置するように機能する攻撃アルゴリズムです。トラバースされる次の配列は、最小の数値が配置されている位置の隣のインデックスから開始されます。
選択ソートの手順
-
要素のリストから最初に小さい要素を選択し、最初の位置に配置します。
-
すべての要素が並べ替えられるまで、リストの残りの要素について同じことを繰り返します。
次のリストを検討してください-
ファーストパス
Sm = a[0] = 30 Sm
a [1]
a [2]
a [3]
a [4]
a [2]
a [3]
a [4]
a [3]
a [4]
a [4] <$ \ square $ $ \ square $ sm 50 <40(F)$ \ square $ 40 $ \square$交換a[3]とsm値
選択ソートについては、以下の手順を参照してください。
以下は、選択ソート手法のCプログラムです-
上記のプログラムを実行すると、次の結果が得られます-10 50 40 30 20
2回目のパス
Sm = a[1] = 50 sm
10 20 40 30 50
サードパス
Sm = a[2] = 40 Sm
10 20 30 40 50
4回目のパス
Sm = a[3] = 40 Sm
手順
for (i=0; i<n-1; i++){
sm=i;
for (j=i+1; j<n; j++){
if (a[j] < a[sm])
sm=j;
}
t=a[i];
a[i] = a[sm];
a[sm] = t;
}
}
例
#include<stdio.h>
int main(){
int a[50], i,j,n,t,sm;
printf("enter the No: of elements in the list:\n");
scanf("%d", &n);
printf("enter the elements:\n");
for(i=0; i<n; i++){
scanf ("%d", &a[i]);
}
for (i=0; i<n-1; i++){
sm=i;
for (j=i+1; j<n; j++){
if (a[j] < a[sm]){
sm=j;
}
}
t=a[i];
a[i]=a[sm];
a[sm]=t;
}
printf ("after selection sorting the elements are:\n");
for (i=0; i<n; i++)
printf("%d\t", a[i]);
return 0;
}
出力
enter the No: of elements in the list:
4
enter the elements:
45
12
37
68
after selection sorting the elements are:
12 37 45 68
-
ユニオンにC言語でのポインタを説明する
ユニオンはメモリロケーションと呼ばれ、さまざまなデータ型のいくつかの変数によって共有されます。 構文 構文は次のとおりです- union uniontag{ datatype member 1; datatype member 2; ---- ---- datatype member n; }; たとえば、 union sample{ int a; float b; char c; }
-
C言語でのポインタアクセスの概念を説明する
ポインタは、他の変数のアドレスを格納する変数です。 ポインタの宣言、初期化、アクセス 次のステートメントを検討してください- int qty = 179; ポインタの宣言 int *p; 「p」は、別の整数変数のアドレスを保持するポインタ変数です。 ポインタの初期化 アドレス演算子(&)は、ポインタ変数を初期化するために使用されます。 int qty = 175; int *p; p= &qty; 文字列の配列内の要素にアクセスする際にポインタがどのように役立つかの例を考えてみましょう。 このプログラムでは、特定の場所に存在する要素にアクセスしようとしています。操