新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 快速排序與二分查找程序

        快速排序與二分查找程序

        作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
        下面是系統(tǒng)自帶快排和二分查找的函數(shù)。qsort和bsearch兩個函數(shù)可以配合起來用,先排序,在查找,也可以分開使用。qsort在比較兩個數(shù)大小的時候返回3個值,1、-1、0,改變1和-1的位置,就可以實現(xiàn)從大到小和從小到大排序。
        qsort
        功能:對數(shù)組base中nmemb塊大小為size字節(jié)的數(shù)組快速排序。
        參數(shù):base 開始地址,nmenmb 數(shù)據(jù)塊數(shù) size 地址大小 compare 根據(jù)此指針指向的函數(shù)的返回結(jié)果來排序(0,正數(shù)和負(fù)數(shù))
        返回值:無
        bsearch
        功能:從地址base 開始空間的nmenmb塊大小為size字節(jié)的數(shù)據(jù)中,二分查找key指針保存地址空間中的內(nèi)容
        參數(shù):key查找內(nèi)容的首地址base開始地址nmenmb
        //qsort 函數(shù)的使用
        //bseach函數(shù)使用
        #include
        #include
        int c_desc(const void *px,const void *py);
        //int c_asc(const void *px,const void *py);
        int main(){
        intarr[10]={0};
        inti=0,j=0,data=0;
        int*p=&j;
        printf("輸入十個數(shù):");
        for(i=0;i<10;i++)
        scanf("%d",&arr[i]);
        printf("輸入查找的數(shù):");
        scanf("%d",&data);
        printf("升序排列:");
        qsort(arr,10,sizeof(int),c_desc);
        for(i=0;i<10;i++)
        printf("%d",arr[i]);
        printf("");
        // printf("降序排列:");
        // qsort(arr,10,sizeof(int),c_asc);
        // for(i=0;i<10;i++)
        // printf("%d",arr[i]);
        p=bsearch(&data,arr,10,sizeof(int),c_desc);
        if(p==NULL)
        printf("不存在");
        else{
        printf("存在");
        printf("%d在第%d個位置",data,p-arr+1);
        }
        printf("");
        return0;
        }
        int c_desc(const void *px,const void *py){
        const*p1=px;
        const*p2=py;
        if(*p1==*p2)
        return0;
        elseif(*p1>*p2)
        return1;
        else
        return-1;
        }
        #if 0
        int c_asc(const void *px,const void *py){
        const*p1=px;
        const*p2=py;
        if(*p1==*p2)
        return0;
        elseif(*p1>*p2)
        return-1;
        else
        return1;
        }
        #endif
        上一頁 1 2 下一頁

        關(guān)鍵詞: 快速排序二分查

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 西吉县| 始兴县| 花莲市| 漳州市| 安化县| 青神县| 江都市| 策勒县| 衢州市| 鹤山市| 平乐县| 蓬溪县| 涿鹿县| 阳泉市| 江西省| 利辛县| 满洲里市| 光山县| 杨浦区| 阜城县| 建昌县| 财经| 建湖县| 台北县| 南丹县| 浦东新区| 股票| 宜章县| 常熟市| 邻水| 车险| 虹口区| 聂荣县| 积石山| 张家港市| 万盛区| 同仁县| 石河子市| 乐陵市| 昆明市| 巴南区|