方法一:冒泡排序–排列整型数
#include <stdio.h>
void int_sort(int arr[], int len)
{
int i;
int j;
int t;
for(i=0;i<len-1;i++){
for(j=0;j<len-1-i;j++){
if(arr[j] < arr[j+1]){
t = arr[j];
arr[j] = arr[j+1];
arr[j+1] = t;
}
}
}
}
int main()
{
int arr[] = {
1,2,3,4,5,6,7,8,9};
int len = sizeof(arr)/sizeof(arr[0]);
int_sort(arr,len);
int i;
for(i=0;i<len;i++){
printf("%d",arr[i]);
}
return 0;
}
输出结果:
987654321
方法二:使用qsort( )
函数(全称quicksort)快速排序
函数功能:qsort()函数的功能是对数组进行排序
参数base - base指向数组的起始地址,通常该位置传入的是一个数组名
参数nmemb - nmemb表示该数组的元素个数
参数size - size表示该数组中每个元素的大小(字节数)
参数int (*compar)(const void* e1 , const void* e2) ; -此为指向比较函数的函数指针,决定了排序的顺序。
#include <stdio.h>
#include <stdlib.h>
int cmp_double(const void* e1 , const void* e2)
{
return ((int)(*(double*)e2 - *(double*)e1)); //逆序
}
int main()
{
double arr[] = {
1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0};
int eve_size = sizeof(arr[0]);
int total_size = sizeof(arr)/sizeof(arr[0]);
//int (*compar)(const void* e1 , const void* e2)
qsort(arr,total_size,eve_size,cmp_double);
int i;
for(i=0;i<total_size;i++){
printf("%f ",arr[i]);
}
return 0;
}