欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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,则为降序

推荐阅读