最近刷题的一点总结

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

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


#include <stdio.h>

#include <stdlib.h>


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;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值