冒泡排序:(比较常用)
#include<stdio.h>
#include<string.h>#include<math.h>
#include<stdlib.h>
int main()
{
int a[1000],n,i,j,k;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=1;i<=n-1;i++)
for(j=0;j<n-i;j++)
if(a[j]>a[j+1])
{
k=a[j];
a[j]=a[j+1];
a[j+1]=k;
}
for(i=0;i<n;i++)
{
if(i==0)
printf("%d",a[i]);
else
printf(" %d",a[i]);
}
printf("\n");
}
选择排序:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
int main()
{
int a[1000],n,i,min,max,j,k;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
{
min=i;/*寻找该趟元素中的最小元素,并将其下标赋值给变量min*/
for(j=i;j<n;j++)
if(min>a[j]) min=a[j];
if(min!=i)/*当该趟首元素不是最小值时,将最小元素与首元素交换位置*/
{
k=a[i];
a[i]=a[min];
a[min]=k;
}
}
for(i=0;i<n;i++)
{
if(i==0)
printf("%d",a[i]);
else
printf(" %d",a[i]);
}
printf("\n");
}