C語言中qsort函數用法


C語言中qsort函數用法-示例分析
 
 本文實例匯總介紹了C語言中qsort函數用法,包括針對各種數據類型參數的排序,非常具有實用價值非常具有實用價值。

分享給大家供大家參考。C語言中的qsort函數包含<stdlib.h>的頭文件里,本文中排序都是采用的從小到大排序。


 

一、對int類型數組排序

int num[100]; 

int cmp ( const void *a , const void *b ) 
{ 
  return *(int *)a - *(int *)b; 
} 
qsort(num,100,sizeof(num[0]),cmp); 

二、對char類型數組排序(同int類型) 

char word[100]; 
int cmp( const void *a , const void *b ) 
{ 
  return *(char *)a - *(char *)b; 
} 

qsort(word,100,sizeof(word[0]),cmp); 

三、對double類型數組排序(特別要注意) 

double in[100]; 

int cmp( const void *a , const void *b ) 
{ 
  return *(double *)a > *(double *)b ? 1 : -1; 
} 
qsort(in,100,sizeof(in[0]),cmp);

四、對結構體一級排序 

struct In 
{ 
  double data; 
   int other; 
}s[100];

int cmp( const void *a ,const void *b) 
{ 
  return (*(struct In *)a)->data > (*(struct In *)b)->data ? 1 : -1; 
} 
qsort(s,100,sizeof(s[0]),cmp); 

 五、對結構體二級排序 

struct In 
{ 
  int x; 
  int y; 
}s[100]; 

//按照x從小到大排序,當x相等時按照y從大到小排序 
int cmp( const void *a , const void *b ) 
{ 
  struct In *c = (struct In *)a; 
  struct In *d = (struct In *)b; 
  if(c->x != d->x) return c->x - d->x; 
  else return d->y - c->y; 
} 
qsort(s,100,sizeof(s[0]),cmp); 

 六、對字符串進行排序 

struct In 
{ 
  int data; 
  char str[100]; 
}s[100]; 

//按照結構體中字符串str的字典順序排序 
int cmp ( const void *a , const void *b ) 
{ 
  return strcmp( (*(struct In *)a)->str , (*(struct In *)b)->str ); 
} 
qsort(s,100,sizeof(s[0]),cmp); 

相信本文所述實例對大家C程序設計的學習有一定的借鑒價值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM