冒泡排序
#include<stdio.h>
int main()
{
int i,j,n,t;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
for(j=0;j<n-1;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
选择排序
#include <stdio.h>
int main()
{
int i,j,t,n;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
if(a[i]>a[j])
{
t=a[j];
a[j]=a[i];
a[i]=t;
}
}
printf("\n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
插入排序
#include <stdio.h>
int main()
{
int i,j,t,n;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
t=a[i];
for(j=i-1 ; j>=0 && a[j]>t ; j--)
{
a[j+1]=a[j];
}
a[j+1]=t;
}
printf("\n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
快速排序
#include<stdio.h>
void quicksort(int a[],int low,int high);
int main()
{
int n,i;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
quicksort(a,0,n-1);
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
void quicksort(int a[],int low,int high)
{
if(low>=high) return;
int i,j,t,temp;
temp=a[low];
i=low;
j=high;
while(i!=j)
{
while(a[j]>=temp && i<j) j--;
while(a[i]<=temp && i<j) i++;
t=a[i];
a[i]=a[j];
a[j]=t;
}
a[low]=a[i];
a[i]=temp;
quicksort(a,low,i-1);
quicksort(a,i+1,high);
}