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

C語言使用stdlib.h庫函數的二分查找和快速排序的實現代碼

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

快速排序:

復制代碼 代碼如下:

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

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

/**輸出數組元素
*\param arr:指向數組的指針
*\param len:數組元素的個數
*/
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"}; /* 定義二維字符數組*/
    char *key="bca";/* 要查找的字符串*/
    char *ptr=NULL; /* 字符指針*/
 // 輸出未排序時字符數組的內容
    printf("before qsort :");
    print(arr,LENGTH(arr));
    /* 使用qsort對字符數組排序*/
    qsort((void *)arr,LENGTH(arr),sizeof(arr[0]),(int (*)(const void *,const void *))strcmp);
    /* 輸出排序后字符數組的內容*/
    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;
}

相關文章

  • 基于QT設計一個春聯自動生成器

    基于QT設計一個春聯自動生成器

    春節(jié)是中國最隆重的傳統(tǒng)節(jié)日,一到過年家家戶戶肯定是要貼春聯;在春節(jié)前夕,會用大紅紙張,加上濃墨書寫祝福詞語。本文將利用Qt框架設計一個春聯自動生成器,需要的可以參考一下
    2022-01-01
  • C語言超詳細講解結構體與聯合體的使用

    C語言超詳細講解結構體與聯合體的使用

    結構體和聯合體用于描述事物的屬性,如一只鳥的信息,可能包括它的品種,體重,顏色,年齡等,接下來大家一起來詳細看看吧
    2022-05-05
  • C語言求2的n次方多種方法總結

    C語言求2的n次方多種方法總結

    這篇文章主要給大家介紹了關于C語言求2的n次方多種方法的相關資料,求2的N次冪是一個常用的功能,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-10-10
  • C語言 循環(huán)詳解及簡單代碼示例

    C語言 循環(huán)詳解及簡單代碼示例

    本文主要介紹C語言的循環(huán)知識,這里整理了循環(huán)的基礎資料并附簡單的代碼示例詳細講解,有需要的小伙伴可以參考下
    2016-08-08
  • strcat 函數的使用指南

    strcat 函數的使用指南

    strcat是連接字符串的函數。函數返回指針,兩個參數都是指針,第一個參數所指向的內存的地址必須能容納兩個字符串連接后的大小。
    2015-09-09
  • C語言實現統(tǒng)計字符串單詞數

    C語言實現統(tǒng)計字符串單詞數

    這篇文章主要介紹了C語言實現統(tǒng)計字符串單詞數,代碼非常的簡潔,有需要的小伙伴快來參考下。
    2015-03-03
  • C語言自定義類型超詳細梳理之結構體 枚舉 聯合體

    C語言自定義類型超詳細梳理之結構體 枚舉 聯合體

    今天我們來學習一下自定義類型,自定義類型包括結構體、枚舉、聯合體,小編覺得挺不錯的,現在就分享給大家,也給大家做個參考
    2022-03-03
  • C++ 對多線程/并發(fā)的支持(上)

    C++ 對多線程/并發(fā)的支持(上)

    這篇文章主要介紹的是C++ 對多線程/并發(fā)的支持,并發(fā),即同時執(zhí)行多個任務,常用來提高吞吐量或者改善響應性,下面我們就來看文章詳細介紹C++ 對多線程并發(fā)的支持相關資料的內容吧
    2021-10-10
  • C語言實現商品管理系統(tǒng)開發(fā)

    C語言實現商品管理系統(tǒng)開發(fā)

    這篇文章主要為大家詳細介紹了C語言實現商品管理系統(tǒng)開發(fā),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 為什么說C語言是永不過時的語言

    為什么說C語言是永不過時的語言

    時隔5年,C語言再次領先Java,榮登TIOBE編程語言排行榜第一,那么C語言為何不會過時?你需要掌握多少種語言呢,感興趣的朋友通過本文一起學習下吧
    2020-11-11

最新評論