2015.2.25
程序员文章站
2022-05-13 10:07:09
...
0.求最大公约数函数 int gcd( int a, int b) { //求最大公约数 if (a b) return gcd(b, a); if (b % a == 0 ) return a; return gcd(b % a, a);} 1.关于qsort与sort 1.1.qsort,包含在stdlib.h中 void qsort( list , sizeof ( list ), sizeof (Element_type)
0.求最大公约数函数
int gcd(int a, int b) { //求最大公约数
if(a > b) return gcd(b, a);
if(b % a == 0) return a;
return gcd(b % a, a);
}
1.关于qsort与sort
1.1.qsort,包含在stdlib.h中
void qsort(list, sizeof(list),sizeof(Element_type),Comp); // qsort的4个参数:数组的首地址、数组的实际大小,元素的实际大小,比较函数
int cmp(const void *p1,const void *p2 )//一般比较函数
{
return *((Element_type *)p2) > *((Element_type *)p1) ? 1 : -1;//当p1>p2,return -1→降序排列(从大到小)
/*return *(Element_type *)p1 - *(Element_type *)p2;
是相同的效果;*/
}
int cmp(const void *p1,const void *p2)//字符串比较函数
{
return strcmp((char *)p2,(char *)p1);//p1>p2,return -1;t同理,降序排列;
}
int cmp(const void *p1,const void *p2)//一级结构体比较函数
{
return (*(Node *)p2)->data > (*(Node *)p1)->data ? 1 : -1;
}
1.2.sort,包含在头文件algorithm中
//基础升序排列
void sort(begin,end);//如int a[n];可用sort(a,a+n);
//自定义比较函数
void sort(begin,end,compare);
bool compare(Element_type a,Element_type b)
{
return a//升序排列,如果改为return a>b,则为降序
推荐阅读