最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言使用stdlib.h庫函數(shù)的二分查找和快速排序的實現(xiàn)代碼

 更新時間:2013年10月11日 09:42:46   作者:  
以下是對C語言使用stdlib.h庫函數(shù)的二分查找和快速排序的實現(xiàn)代碼進行了詳細的介紹,需要的朋友可以過來參考下。希望對大家有所幫助

快速排序:

復制代碼 代碼如下:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#define LENGTH(x) sizeof(x)/sizeof(x[0])

/**輸出數(shù)組元素
*\param arr:指向數(shù)組的指針
*\param len:數(shù)組元素的個數(shù)
*/
void print(char (*arr)[10],int len)
{
    int i;
    for (i=0;i<len;i++)
    {
        printf("%s ",arr[i]);
    }
    printf("\n");
}

int main()
{
    char arr[][10]={"bac","bca","abc","acb","cba","cab"}; /* 定義二維字符數(shù)組*/
    char *key="bca";/* 要查找的字符串*/
    char *ptr=NULL; /* 字符指針*/
 // 輸出未排序時字符數(shù)組的內容
    printf("before qsort :");
    print(arr,LENGTH(arr));
    /* 使用qsort對字符數(shù)組排序*/
    qsort((void *)arr,LENGTH(arr),sizeof(arr[0]),(int (*)(const void *,const void *))strcmp);
    /* 輸出排序后字符數(shù)組的內容*/
    printf("after qsort :");
    print(arr,LENGTH(arr));
    /* 采用二分查找查找指定字符*/
    ptr=(char *)bsearch(key,arr,LENGTH(arr),sizeof(arr[0]),(int (*)(const void *,const void *))strcmp);
    if(ptr)
    {
        /* 找到*/
        printf("%s is in the array\n",key);
    }
    else/* 沒找到*/
    {
        printf("%s isn't in the array\n",key);
    }
    return 0;
}


二分查找:
復制代碼 代碼如下:

#include<stdlib.h>
#include<stdio.h>
#define ArrayLen(arr) (sizeof(arr) / sizeof(arr[0]))

int numarray[] = {123, 145, 512, 627, 800, 933};

int numeric (const int *p1, const int *p2)
{
    return(*p1 - *p2);
}
int* lookup(int key)
{//返回值是指向key的地址
    int *itemptr;
    // The cast of (int(*)(const void *,const void*)) is needed to avoid a type mismatch error at
 // compile time
    itemptr = (int *)bsearch(&key, numarray, ArrayLen(numarray), \
                             sizeof(int), (int(*)(const void *,const void *))numeric);
    return (itemptr);
}
int main(void)
{
 int *p = lookup(512);
 if(NULL != p)
  printf("找到的key是%d,", *p);

 printf("key的下標是%d\n", (p - numarray));

    return 0;
}

相關文章

  • 詳解C語言中freopen()函數(shù)和fclose()函數(shù)的用法

    詳解C語言中freopen()函數(shù)和fclose()函數(shù)的用法

    這篇文章主要介紹了詳解C語言中freopen()函數(shù)和fclose()函數(shù)的用法,是C語言入門學習中的基礎知識,需要的朋友可以參考下
    2015-08-08
  • OpenCV獲取圖像中直線上的數(shù)據(jù)具體流程

    OpenCV獲取圖像中直線上的數(shù)據(jù)具體流程

    對圖像進行處理時,經常會有這類需求:客戶想要提取出圖像中某條直線或者ROI區(qū)域內的感興趣數(shù)據(jù),進行重點關注,怎么操作呢,下面小編通過實例代碼介紹下OpenCV獲取圖像中直線上的數(shù)據(jù),一起看看吧
    2021-11-11
  • C++將保存char、int 和double到txt文件中

    C++將保存char、int 和double到txt文件中

    這篇文章主要介紹了C++如何將保存char、int 和double到txt文件中,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • c++11封裝thread庫的方法示例

    c++11封裝thread庫的方法示例

    C++11 ,封裝了thread的多線程的類,這樣對多線程的使用更加方便。下面這篇文章主要給大家介紹了關于c++11封裝thread庫的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2019-01-01
  • 利用Qt實現(xiàn)仿QQ設置面板功能

    利用Qt實現(xiàn)仿QQ設置面板功能

    這篇文章主要為大家詳細介紹了如何利用Qt實現(xiàn)仿QQ設置面板功能,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以了解一下
    2022-12-12
  • C++ Boost Chrono實現(xiàn)計時碼表流程詳解

    C++ Boost Chrono實現(xiàn)計時碼表流程詳解

    Boost是為C++語言標準庫提供擴展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標準庫的后備,是C++標準化進程的開發(fā)引擎之一,是為C++語言標準庫提供擴展的一些C++程序庫的總稱
    2022-11-11
  • c/c++ 標準庫 bind 函數(shù)詳解

    c/c++ 標準庫 bind 函數(shù)詳解

    bind是一組用于函數(shù)綁定的模板。在對某個函數(shù)進行綁定時,可以指定部分參數(shù)或全部參數(shù),也可以不指定任何參數(shù),還可以調整各個參數(shù)間的順序。這篇文章主要介紹了c/c++ 標準庫 bind 函數(shù) ,需要的朋友可以參考下
    2018-09-09
  • C語言實現(xiàn)餐飲結賬管理系統(tǒng)

    C語言實現(xiàn)餐飲結賬管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)餐飲結賬管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • PTA刷題C語言編程順序顛倒輸出實現(xiàn)

    PTA刷題C語言編程順序顛倒輸出實現(xiàn)

    本篇文章是在刷PTA題目是遇到的一道題,給定一句話,要求將句中所有單詞順序顛倒輸出,本文來帶你解答,有需要的朋友可以借鑒參考下
    2021-09-09
  • C++全面細致講解復數(shù)類

    C++全面細致講解復數(shù)類

    本文章向大家介紹C++ 標準庫中的復數(shù)類,主要包括C++ 標準庫中的復數(shù)類使用實例、應用技巧、基本知識點總結和需要注意事項,具有一定的參考價值,需要的朋友可以參考一下
    2022-06-06

最新評論

芒康县| 新营市| 瓦房店市| 兴国县| 凤庆县| 建宁县| 达拉特旗| 巴东县| 若羌县| 章丘市| 金川县| 兴文县| 垫江县| 滨州市| 宿迁市| 杭锦旗| 巫溪县| 南召县| 绥阳县| 江口县| 永修县| 明溪县| 额尔古纳市| 四会市| 龙海市| 灌云县| 陇西县| 许昌县| 仪征市| 定边县| 临湘市| 乌拉特后旗| 桦川县| 类乌齐县| 荥经县| 丹棱县| 漳浦县| 甘泉县| 称多县| 那曲县| 屏东县|