冒泡排序:
void bubblesort(int *a,int n)
{
bool changed;
int i;
do
{
changed=false;
for(i=0;i<n;i++)
{
if(a[i]>a[i+1])
swap(&a[i],&a[i+1]);
}
--n;
}while(changed);
}
快速排序:
void quicksort(int *a,int n)
{
if(n<=1) return;
if(n==2)
{
if(a[0]>a[1])
{
swap(&a[0],&a[1]);
return;
}
}
swap(&a[0],&a[n/2])
int key=a[0];
int *L=a+1;
int *R=a+n-1;
while(L<R)
{
while(L<R &&*L<key) ++L;
while(a<R && *R>key) --R;
if(L<R)
swap(*L,*R);
}
if(*R<key)
swap(*R,a[0]);
quicksort(a,R-a);
quicksort(R+1,n-1-(R-1));
}
选择排序:
void select(int *a,int n)
{
for(int i=0;i<n-1;i++)
{
int min=i;
for(j=i+1;j<n;j++)
{
if(a[min]>a[j])
{
min=j;
swap(a[min],a[i]);
}
}
}
}