欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言中qsort函數(shù)的用法實(shí)例詳解

 更新時間:2017年10月31日 14:34:05   作者:趙子蒼  
這篇文章主要介紹了C語言中qsort函數(shù)的用法實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下

C語言中qsort函數(shù)的用法實(shí)例詳解

快速排序是一種用的最多的排序算法,在C語言的標(biāo)準(zhǔn)庫中也有快速排序的函數(shù),下面說一下詳細(xì)用法。

qsort函數(shù)包含在<stdlib.h>中

qsort函數(shù)聲明如下:

void qsort(void * base,size_t nmemb,size_t size ,int(*compar)(const void *,const void *));


參數(shù)說明:

base,要排序的數(shù)組
nmemb,數(shù)組中元素的數(shù)目
size,每個數(shù)組元素占用的內(nèi)存空間,可使用sizeof函數(shù)獲得
compar,指向函數(shù)的指針也即函數(shù)指針。這個函數(shù)用來比較兩個數(shù)組元素,第一個參數(shù)大于,等于,小于第二個參數(shù)時,分別顯示正值,零,負(fù)值。

下面看幾個例子:

#include<stdio.h> 
#include<stdlib.h> 
#include<math.h> 
#include<string.h> 
 
void main(void) 
{ 
  int i; 
  int a[10]={0,1,2,3,4,5,6,7,8,9}; 
  char b[10]={'a','b','c','d','e','f','g','h','i','j'}; 
  double c[10]={0.1,0.2,0.9,0.5,0.3,0.6,0.7,0.8,1.1,1.2}; 
  int cmp1(const void * a,const void * b) 
  { 
    return (*(int*)a-*(int*)b);//a>b 返回正值 
  } 
 
  int cmp2(const void * a,const void *b) 
  { 
    return(*(char*)a-*(char*)b); 
  } 
  int cmp3(const void * a,const void * b) 
  { 
    if(fabs(*(double*)a-*(double *)b)<1*exp(-20)) 
      return 0; 
    else 
      return(((*(double*)a-*(double*)b)>0)?1:-1); 
  } 
 
  qsort(a,10,sizeof(int),&cmp1);//對于函數(shù)指針(指向函數(shù)的指針),直接傳入函數(shù)名和函數(shù)名進(jìn)行& 
                 //運(yùn)算都是可以的,因為在調(diào)用函數(shù)時也是取的函數(shù)的地址 
  qsort(b,10,sizeof(char),cmp2); 
  qsort(c,10,sizeof(double),cmp3); 
  for(i=0;i<10;i++) 
    printf("%d ",a[i]); 
  for(i=0;i<10;i++) 
    printf("%c ",b[i]); 
  for(i=0;i<10;i++) 
    printf("%lf ",c[i]); 
} 

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • TypeScript的函數(shù)定義與使用案例教程

    TypeScript的函數(shù)定義與使用案例教程

    這篇文章主要介紹了TypeScript的函數(shù)定義與使用案例教程,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • c++讀取數(shù)據(jù)文件到數(shù)組的實(shí)例

    c++讀取數(shù)據(jù)文件到數(shù)組的實(shí)例

    今天小編就為大家分享一篇c++讀取數(shù)據(jù)文件到數(shù)組的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 詳解C語言中的內(nèi)存四區(qū)模型及結(jié)構(gòu)體對內(nèi)存的使用

    詳解C語言中的內(nèi)存四區(qū)模型及結(jié)構(gòu)體對內(nèi)存的使用

    這篇文章主要介紹了C語言中的內(nèi)存四區(qū)模型及結(jié)構(gòu)體對內(nèi)存的使用,包括結(jié)構(gòu)體中內(nèi)存泄漏情況的注意點(diǎn)提醒,需要的朋友可以參考下
    2016-03-03
  • 詳解C++編程中的文件流與字符串流

    詳解C++編程中的文件流與字符串流

    這篇文章主要介紹了C++編程中的文件流與字符串流,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • Qt實(shí)現(xiàn)手動切換多種布局的完美方案

    Qt實(shí)現(xiàn)手動切換多種布局的完美方案

    通過點(diǎn)擊程序界面上不同的布局按鈕,使主工作區(qū)呈現(xiàn)出不同的頁面布局,多個布局之間可以通過點(diǎn)擊不同布局按鈕切換,支持的最多的窗口為9個,不同布局下窗口數(shù)隨之變化,這篇文章主要介紹了Qt實(shí)現(xiàn)手動切換多種布局的完美方案,需要的朋友可以參考下
    2024-07-07
  • C++實(shí)現(xiàn)簡單計算器

    C++實(shí)現(xiàn)簡單計算器

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡單計算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • 詳解C++中的inline用法

    詳解C++中的inline用法

    在c/c++中,為了解決一些頻繁調(diào)用的小函數(shù)大量消耗??臻g(棧內(nèi)存)的問題,特別的引入了inline修飾符,表示為內(nèi)聯(lián)函數(shù)。 棧空間就是指放置程序的局部數(shù)據(jù)(也就是函數(shù)內(nèi)數(shù)據(jù))的內(nèi)存空間
    2017-09-09
  • Cocos2d-x人物動作類實(shí)例

    Cocos2d-x人物動作類實(shí)例

    這篇文章主要介紹了Cocos2d-x人物動作類實(shí)例,本文用大量代碼和圖片講解Cocos2d-x中的動作,代碼中同時包含大量注釋說明,需要的朋友可以參考下
    2014-09-09
  • C語言實(shí)現(xiàn)貪吃蛇游戲(單人版)

    C語言實(shí)現(xiàn)貪吃蛇游戲(單人版)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)貪吃蛇游戲單人版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • C++ 二維數(shù)組參數(shù)傳遞的實(shí)現(xiàn)方法

    C++ 二維數(shù)組參數(shù)傳遞的實(shí)現(xiàn)方法

    這篇文章主要介紹了C++ 二維數(shù)組參數(shù)傳遞的實(shí)現(xiàn)方法的相關(guān)資料,這里提供三種方法幫助大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-08-08

最新評論