关于sort排序通用的函数接口
来源:互联网 发布:公司软件开发外包 编辑:程序博客网 时间:2024/06/01 07:21
#ifndef _SORT_H_INCLUDE_#define _SORT_H_INCLUDE_#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>voidngx_sort(void*base,size_t n,size_t size,int(*cmp)(const void*,const void*));voidngx_print(void*base,size_t n,size_t size);#endif
#include "sort.h"void ngx_sort(void*base,size_t n,size_t size,int(*cmp)(const void*p1, const void*p2)){ u_char*p1,*p2,*p; p=malloc(size); if(p==NULL)return ; for(p1=(u_char*)base+size;p1<(u_char*)base+size*n;p1+=size) {memcpy(p,p1,size);for(p2=p1; p2>(u_char*)base&&cmp(p2-size,p)>0; p2-=size){ memcpy(p2,p2-size,size);}memcpy(p2,p,size); } free(p);}void ngx_print(void*base,size_t n,size_t size){ u_char*elem; size_t i=0; elem=base; for(i=0;i<n;i++){printf("%d ",*elem);elem+=size; } printf("\n");}
#include "sort.h"int ngx_cmp_int(const int *p,const int *q){ if(*p>*q)return 1; return -1;}int main(int ac,char**av){ int i,n; int *a; if(ac!=2){printf("usage:av[1]\n");return -1; } n=atoi(av[1]); a=malloc(n*sizeof(int)); if(a==NULL)return -1; for(i=0;i<n;i++){scanf("%d",&a[i]); } ngx_print(a,n,sizeof(int)); ngx_sort(a,n,sizeof(int),ngx_cmp_int); ngx_print(a,n,sizeof(int));}
obj=sort.o main.omain:$(obj)gcc -o main $(obj)main.o:sort.o:clean:rm -rf main $(obj)
0 0
- 关于sort排序通用的函数接口
- 通用排序函数的功能实现(利用接口和委托实现泛型[通用]排序)
- linux内核中的排序接口--sort函数
- 【大渣】关于sort函数排序
- MatLab的排序函数-sort .
- Matlab的排序函数-sort
- 排序sort()函数的使用
- algorithm的sort排序函数
- 关于vs2008的sort排序的问题?
- 关于TLIST排序SORT的使用
- 关于SAP的“Sort key 排序码”
- 关于js数组的sort排序
- js中关于sort()的冒泡排序
- Python的排序:关于sort()与sorted()
- 关于sort排序的个人理解
- 关于std::sort中的比较函数使用时的严格弱排序(strict weak order)
- C++ 排序函数 sort(),qsort()的用法
- C++ 排序函数 sort(),qsort()的用法
- hdu 5203 Rikka with wood sticks
- Linux 命令 集锦
- java的反射机制
- hdu-2200 Eddy's AC难题
- IOS自动化测试压力测试
- 关于sort排序通用的函数接口
- Cordys BOP 4平台开发入门实战演练——For Each流程建模开发
- Android开源项目汇总
- ehci usb问题
- strut2提交form表单乱码
- VC对话框控件基本操作2
- Foundation NSMutableString
- JAVA LinkedHashMap与LRU,LinkedHashMap keySet遍历Map失败之谜
- ListView去滑动效果