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

バブルソートを使用して、指定された数値のリストを昇順でソートする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

  1. 単一のリンクリストを使用して番号を逆の順序で表示するCプログラム

    リンクリストは動的メモリ割り当てを使用し、ノードのコレクションです。 ノードには、データとリンクの2つの部分があります。 リンクリストの種類 Cプログラミング言語のリンクリストの種類は次のとおりです- 単一/単一リンクリスト 二重/二重リンクリスト 循環単一リンクリスト 循環二重リンクリスト 単一のリンクリスト 以下の図は、単一のリンクリストの表現を示しています。 例 以下は、単一のリンクリストを使用して番号を逆の順序で表示するCプログラムです。 − #include <stdio.h> #include <stdlib.h> struct node

  2. 非再帰関数を使用して数値の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