C言語| 10個の数字をソートするための選択方法

例60:C言語は、10個の整数をソートするための選択メソッドを実装します。

分析:選択と並べ替えのアイデアは次のとおりです。a[1]がa [2]〜よりも優れている場合、10個の要素a [1] a [10]、a [1]、a [2] a [10]を使用します。 a [10]が小さい、交換が行われない、つまり操作が行われない。

a [2]とa [10]の複数がa [1]より小さい場合、それらの最大のものがa [1]と交換されます。このとき、a [1]は10個の中で最小の数を格納します。 。類推すると、合計9ラウンドの比較が実行され、a [1] a [10]が昇順で格納されています。

全体的なコードロジックを明確にするために、小林はここで4つの部分に分かれています。

キーボードの最初の部分は10個の数字を入力します。

for(i=1;i<=10;i++)//依次键盘录入10个数据 
  {
    
    
    printf("array[%d]=",i-1);//数组下标从0开始 
    scanf("%d",&array[i]);
  }

2番目の部分は、キーボードで入力された10個の数字を出力します。

for(i=1;i<=10;i++)//将键盘录入的10个数原样输出 
  {
    
    
    printf("%5d",array[i]);
  }

並べ替えロジックの3番目の部分:

for(i=1;i<=9;i++)
  {
    
    
    min=i;//把第一个数作为最小的 
    for(j=i+1;j<=10;j++)
    {
    
     
      if(array[min]>array[j])//判断大小,小的为min 
      {
    
    
        min=j;
      } 
    }
      temp=array[i]; //大小交换 
      array[i]=array[min];
      array[min]=temp; 
  }

ソート後の10個の数値の4番目の部分:

for(i=1;i<=10;i++)//输出排序后的10个数 
  {
    
    
    printf("%5d",array[i]);
  }

ソースコードのデモ:

#include<stdio.h>//头文件 
int main()//主函数 
{
    
    
  int i,j,min,temp,array[11];//定义整型变量和数组 
  printf("输入数据:\n");//提示语句 
  for(i=1;i<=10;i++)//依次键盘录入10个数据 
  {
    
    
    printf("array[%d]=",i-1);//数组下标从0开始 
    scanf("%d",&array[i]);
  }
  printf("\n");//换行 
  printf("原样输出:\n");//提示语句 
  for(i=1;i<=10;i++)//将键盘录入的10个数原样输出 
  {
    
    
    printf("%5d",array[i]);
  }
  printf("\n");//换行
  for(i=1;i<=9;i++)
  {
    
    
    min=i;//把第一个数作为最小的 
    for(j=i+1;j<=10;j++)
    {
    
     
      if(array[min]>array[j])//判断大小,小的为min 
      {
    
    
        min=j;
      } 
    }
      temp=array[i]; //大小交换 
      array[i]=array[min];
      array[min]=temp; 
  } 
  printf("排序输出:\n");//提示语句 
  for(i=1;i<=10;i++)//输出排序后的10个数 
  {
    
    
    printf("%5d",array[i]);
  }
  printf("\n");//换行
  return 0;//主函数返回值为0 
}

コンパイルと実行の結果は次のとおりです。

输入数据:
array[0]=1
array[1]=4
array[2]=7
array[3]=9
array[4]=4
array[5]=3
array[6]=7
array[7]=9
array[8]=5
array[9]=3

原样输出:
    1    4    7    9    4    3    7    9    5    3
排序输出:
    1    3    3    4    4    5    7    7    9    9

--------------------------------
Process exited after 8.036 seconds with return value 0
请按任意键继续. . .

クイックソート、マージソート、いいねのソートを見て、教えてください

10個の数字をソートするためのC言語の選択方法
より多くのケースがパブリックアカウントに移動できます:熟練したC言語のエントリ

おすすめ

転載: blog.csdn.net/weixin_48669767/article/details/112588832