简单的冒泡法排序。
#include<stdio.h>
void bubble_sort(int arr[],int sz)
{
int i=0;
for(i=0;i<sz-1;i++)
{
int j=0;
for(j=0;j<sz-1-i;j++)
{
if(arr[j]>arr[j+1])
{
int tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
}
}
}
int main()
{
int arr[10]={9,8,7,6,5,4,3,2,1,0};
int sz=sizeof(arr)/sizeof(arr[0]);
bubble_sort(arr,sz);
int i=0;
for(i=0;i<sz;i++)
{
printf("%d ",arr[i]);
}
return 0;
}
用qsort库函数进行比较更快,void*类型的指针可以接收任意类型的地址,但是不能进行解引用操作和+-整数的操作。
#include<stdio.h>
#include<stdlib.h>
int cmp_int(const void* e1,const void* e2)
{
return *(int*)e1-*(int*)e2;
}
int main()
{
int arr[10]={9,8,7,6,5,4,3,2,1,0};
int sz=sizeof(arr)/sizeof(arr[0]);
qsort(arr,sz,sizeof(arr[0]),cmp_int);
int i=0;
for(i=0;i<sz;i++)
{
printf("%d ",arr[i]);
}
return 0;
}