快速排序算法的实用实例,C语言,Visual Studio编译,Linux环境、单片机开发环境通用。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 从小到大
int comp1(const void* p1,const void*p2)
{
const int *p11 = (const int *)p1;
const int *p21 = (const int *)p2;
if (*p11 < *p21)
{
return -1;
}
else if(*p11 > *p21)
{
return 1;
}
else
{
return 0;
}
}
// 从大到小
int comp2(const void* p1,const void*p2)
{
const int *p11 = (const int *)p1;
const int *p21 = (const int *)p2;
if (*p11 < *p21)
{
return 1;
}
else if(*p11 > *p21)
{
return -1;
}
else
{
return 0;
}
}
int main(void)
{
int i = 0;
int dat[100] = {0};
srand(time(0));
// 生成随机数列
for(i = 0; i <100; i++)
{
dat[i] = rand()%100;
printf("%d ", dat[i]);
}
printf("\n");
// 排序
qsort(dat,100, sizeof(int), comp1);
// 排序后
for(i = 0; i <100; i++)
{
printf("%d ", dat[i]);
}
printf("\n");
return 0;
}