最近刷题的一点总结

有些问题总是不停的忘,感觉还是记下来作为备忘录比较好!

在便携式算法刷题之中用到的最多的一个函数式排序函数,尽管排序算法很多,比如冒泡,插入,快排,堆排等等,实际上大家都没有亲自去实现,而是调用c++或者java中的模板来实现的,由于下学期的助教要担任c++/c程序设计,现将其调用方式在重复一遍,而且实际桑记住一个就可以了。这里就说明一下qsort吧


#include

#include


typedef struct{

    int a;

    int b;

} node;


递增的排序方式

int cmp1(const void * a,const void * b){

node aa=*((node *)a);

        node bb=*((node *)b);

       if(aa.a>bb.a){

              return 1;

       }

      else if(aa.a==bb.a){

             return 0;

      }

     else{

             return -1;

     }

}


递减的排序方式

int cmp1(const void * a,const void * b){

node aa=*((node *)a);

        node bb=*((node *)b);

       if(aa.a>bb.a){

              return 1;

       }

      else if(aa.a==bb.a){

             return 0;

      }

     else{

             return -1;

     }

}

调用的模板例子


C语言版

num=100;

node * nodes=(node *)malloc(num*sizeof(node));

qsort(nodes,num,sizeof(node),cmp1);

free(nodes);


C++版

num=100;

node * nodes=new node[num];

qsort(nodes,num,sizeof(node),cmp1);

delete nodes;


你可能感兴趣的:(最近刷题的一点总结)