バブルソートを使用して、指定された数値のリストを昇順でソートするCプログラム
Cプログラミング言語では、バブルソートは最も単純なソート手法であり、交換ソートとも呼ばれます。
バブルソートの手順
-
最初の要素をリスト内の残りの要素と比較し、順序が正しくない場合は交換(交換)します。
-
すべての要素が並べ替えられるまで、リスト内の他の要素についても同じことを繰り返します。
アルゴリズム
以下に示すのは、バブルソート手法を使用して、指定された数値のリストを昇順でソートするアルゴリズムです-
ステップ1 −開始
ステップ2 −リスト(配列)、numを取得
ステップ3 − readlist(list、num)
ステップ4 − printlist(list、num)
ステップ5 − bub_sort(list、num)
ステップ6 − printlist(list、num)
readlist (list, num)
ステップ7 −停止
1. for j = 0 to num 2. read list[j].
printlist(list、num)
1. for j =0 to num 2. write list[j].
bub_sort(list、num)
1. for i = 0 to num 2. for j =0 to (num – i) 3. if( list[j] > list[j+1]) 4. swapList( address of list[j], address of list[j+1])
swapList(リストのアドレス[j]、リストのアドレス[j + 1])
1. temp = value at list[j] 2. value at list[j] = value at list[j+1] 3. value at list[j+1] = tempの値
例
以下は、バブルソート手法を使用して番号の特定のリストを昇順でソートするCプログラムです。 −
#include <stdio.h> #define MAX 10 void swapList(int *m,int *n){ int temp; temp = *m; *m = *n; *n = temp; } /* Function for Bubble Sort */ void bub_sort(int list[], int n){ int i,j; for(i=0;i<(n-1);i++) for(j=0;j<(n-(i+1));j++) if(list[j] > list[j+1]) swapList(&list[j],&list[j+1]); } void readlist(int list[],int n){ int j; printf("\nEnter the elements: \n"); for(j=0;j<n;j++) scanf("%d",&list[j]); } /* Showing the contents of the list */ void printlist(int list[],int n){ int j; for(j=0;j<n;j++) printf("%d\t",list[j]); } void main(){ int list[MAX], num; printf(" Enter the number of elements \n"); scanf("%d",&num); readlist(list,num); printf("\n\nElements in the list before sorting are:\n"); printlist(list,num); bub_sort(list,num); printf("\n\nElements in the list after sorting are:\n"); printlist(list,num); }
出力
上記のプログラムを実行すると、次の結果が得られます-
Enter the number of elements 10 Enter the elements: 11 23 45 1 3 6 35 69 10 22 Elements in the list before sorting are: 11 23 45 1 3 6 35 69 10 22 Elements in the list after sorting are: 1 3 6 10 11 22 23 35 45 69
-
単一のリンクリストを使用して番号を逆の順序で表示するCプログラム
リンクリストは動的メモリ割り当てを使用し、ノードのコレクションです。 ノードには、データとリンクの2つの部分があります。 リンクリストの種類 Cプログラミング言語のリンクリストの種類は次のとおりです- 単一/単一リンクリスト 二重/二重リンクリスト 循環単一リンクリスト 循環二重リンクリスト 単一のリンクリスト 以下の図は、単一のリンクリストの表現を示しています。 例 以下は、単一のリンクリストを使用して番号を逆の順序で表示するCプログラムです。 − #include <stdio.h> #include <stdlib.h> struct node
-
非再帰関数を使用して数値のGCDを見つけるCプログラム
問題 非再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけます。 解決策 非再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つける方法を以下に説明します。 アルゴリズム 非再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけるには、以下のアルゴリズムを参照してください。 ステップ1 −開始 ステップ2 −整数aとbを読み取ります ステップ3 −関数G =GCD(a、b)ステップ6を呼び出します ステップ4 −G値を出力 ステップ5 −停止 ステップ6 −呼び出された関数:GCD(a、b) a. Initialize th