sba/sorting.h
2022-11-03 18:23:44 +08:00

43 lines
1.1 KiB
C

typedef struct Map{
int key;
void* value;
}Map;
int compare_decending_str(const void *a, const void *b){
if((*(struct Map *)b).value == NULL){//To prevent null pointer cause error
return -1;
}else if((*(struct Map *)a).value == NULL){
return 1;
}
return strcmp((*(struct Map *)b).value,(*(struct Map *)a).value);
}
int compare_ascending_str(const void *a, const void *b){
if((*(struct Map *)b).value == NULL){
return -1;
}else if((*(struct Map *)a).value == NULL){
return 1;
}
return strcmp((*(struct Map *)a).value,(*(struct Map *)b).value);
}
int compare_decending(const void *a, const void *b){
if((*(struct Map *)b).value == NULL){//To prevent null pointer cause error
return -1;
}else if((*(struct Map *)a).value == NULL){
return 1;
}
return (*(struct Map *)b).value-(*(struct Map *)a).value;
}
int compare_ascending(const void *a, const void *b){
if((*(struct Map *)b).value == NULL){
return -1;
}else if((*(struct Map *)a).value == NULL){
return 1;
}
return (*(struct Map *)a).value -(*(struct Map *)b).value;
}