基本的なアルゴリズムのバブルソート。
基本的な考え方
隣接する二つの要素の各比較は、自分の順番が間違っていた場合、彼は、要素の次のセットを決定するために継続的に責任を交換します。小から大へ、位置のより多くが越後する場合は、各要素エンド要素の次のセットを比較し、番号が1つ減少します。
以下を達成するためのコード
#include<stdio.h>
int main ()
{
int a[100];
int i,j,temp,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]); //数据准备阶段
for(i=1;i<=n-1;i++) //只需要到达n-1就可以了
{
for(j=1;j<=n-i;j++) //想想为什么到达n-i就可以了
{
if(a[j]<a[j+1])
{
temp=a[j]; //通过temp坐中间变量交换两个元素
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=1;i<=n;i++) //输出结果
printf("%d ",a[i]);
getchar(); getchar();
return 0;
}
入力検証値
10
152 78 9 0 1000 278 80 73 11 500
業績は以下のとおりです。
0 9 11 73 78 80 152 278 500 1000
リマーク
単にそれにステートメントを変更することで、降順かどうかを判断するために、