亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言數據結構之 折半查找實例詳解

2020-01-26 14:04:08
字體:
來源:轉載
供稿:網友

數據結構 折半查找

實例代碼:

/*   名稱:折半查找    語言:數據結構C語言版    編譯環境:VC++ 6.0   日期: 2014-3-26  */  #include <stdio.h> #include <malloc.h> #include <windows.h>   #define N 11 // 數據元素個數   typedef int KeyType; // 設關鍵字域為整型   typedef struct // 數據元素類型  {   KeyType key;  // 關鍵字域    int others;   // 其它部分   }ElemType;   // Search_Seq.h 靜態查找表的順序存儲結構  typedef struct {   // 數據元素存儲空間基址,建表時按實際長度分配,0號單元留空   ElemType *elem;   int length; // 表長度  }SSTable;  ElemType r[N]={   {05,1},{13,2},{19,3},{21,4},   {37,5},{56,6},{64,7},{75,8},   {80,9},{88,10},{92,11} }; // 數據元素(以教科書P219的數據為例),全局變量    // 靜態查找表(順序表和有序表)的基本操作(7個)   // 構造一個含n個數據元素的靜態順序查找表ST(數據來自全局數組r)  int Creat_Seq(SSTable *ST,int n) {    int i;   (*ST).elem = (ElemType *)calloc(n+1, sizeof(ElemType));    // 動態生成n+1個數據元素空間(0號單元不用)    if(!(*ST).elem)     return 0;   for( i = 1; i <= n; i++)     *((*ST).elem+i) = r[i-1]; // 將全局數組r的值依次賦給ST    (*ST).length = n;   return 1; }  // 重建靜態查找表為按關鍵字非降序排序  void Ascend(SSTable *ST) {     int i, j, k;   for(i = 1; i < (*ST).length; i++)   {     k = i;     (*ST).elem[0] = (*ST).elem[i]; // 待比較值存[0]單元      for(j = i+1; j <= (*ST).length; j++) //從中找到第i小的值       if ((*ST).elem[j].key < (*ST).elem[0].key)       {         k=j;         (*ST).elem[0]=(*ST).elem[j];       }     if(k != i) // 有更小的值則交換      {       (*ST).elem[k]=(*ST).elem[i];       (*ST).elem[i]=(*ST).elem[0];     }   } }  // 構造一個含n個數據元素的靜態按關鍵字非降序查找表ST, // 數據來自全局數組r  int Creat_Ord(SSTable *ST,int n) {   int f;   f = Creat_Seq(ST,n);  //構建一個靜態表   if( f ) //靜態表存在,則對其進行重建     Ascend(ST);   return f; }  // 銷毀表ST  int Destroy(SSTable *ST) {    free((*ST).elem);   (*ST).elem = NULL;   (*ST).length = 0;    return 1; }  // 在有序表ST中折半查找其關鍵字等于key的數據元素。若找到,則函數 // 值為該元素在表中的位置,否則為0。  int Search_Bin(SSTable ST,KeyType key) {     int low, high, mid;   low = 1; // 置區間初值    high = ST.length;   while(low <= high)   {     mid = (low + high) / 2;     if(key == ST.elem[mid].key) // 找到待查元素        return mid;     else if(key < ST.elem[mid].key)       high = mid - 1;   // 繼續在前半區間進行查找      else       low = mid + 1;   // 繼續在后半區間進行查找    }   return 0; // 順序表中不存在待查元素  }  // 按順序對ST的每個元素調用函數Visit()一次且僅一次。 int Traverse(SSTable ST,void(*Visit)(ElemType)) {     ElemType *p;   int i;      p = ++ST.elem; // p指向第一個元素,第0個元素沒有用    for(i = 1; i <= ST.length; i++)     Visit( *p++ );      return 1; }  void print(ElemType c) // Traverse()調用的函數  {   printf("(%d %d) ", c.key, c.others); }  int main() {   SSTable st;   int i;   KeyType s;      Creat_Ord(&st, N); // 由全局數組產生非降序靜態查找表st    Traverse(st,print); // 順序輸出非降序靜態查找表st     printf("/n請輸入待查找值的關鍵字: ");   scanf("%d", &s);   i = Search_Bin(st, s); // 折半查找有序表    if( i )     print(st.elem[i]);   else     printf("沒找到./n");    Destroy(&st);   system("pause");   return 0; }  /* 輸出效果:  (5 1) (13 2) (19 3) (21 4) (37 5) (56 6) (64 7) (75 8) (80 9) (88 10) (92 11) 請輸入待查找值的關鍵字: 75 (75 8) 請按任意鍵繼續. . .   */  

運行結果如下:

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲男人天堂2023| 成人有码在线视频| 色综合视频一区中文字幕| 国产日韩欧美中文| 久久久亚洲欧洲日产国码aⅴ| 毛片精品免费在线观看| xx视频.9999.com| 国产综合在线观看视频| 国产专区欧美专区| 日韩中文在线中文网在线观看| 国产精品99免视看9| 最好看的2019年中文视频| 日韩精品在线私人| 亚洲第一偷拍网| 菠萝蜜影院一区二区免费| 欧美电影在线观看完整版| 亚洲美女喷白浆| 亚洲新中文字幕| 在线看日韩欧美| 国产精品免费福利| 欧美精品在线视频观看| 日韩成人在线观看| 色哟哟入口国产精品| 国产做受69高潮| 欧美孕妇毛茸茸xxxx| 日韩av不卡电影| 91欧美激情另类亚洲| 色一区av在线| 久久99视频免费| 国产精品极品美女粉嫩高清在线| 精品国偷自产在线视频99| 亚洲天堂男人天堂| 精品国产一区二区三区久久久| 欧美成人剧情片在线观看| 国产视频一区在线| 精品国内亚洲在观看18黄| 日韩av手机在线| 日韩大陆欧美高清视频区| 欧美成人四级hd版| 日韩欧美一区视频| 色樱桃影院亚洲精品影院| 中文字幕精品国产| 欧美电影《睫毛膏》| 精品视频偷偷看在线观看| 欧美激情伊人电影| 日韩在线观看网址| 久久精品99久久香蕉国产色戒| 色妞久久福利网| 国产成人激情小视频| 精品亚洲一区二区| 国产精品久久久久av| 韩国精品久久久999| 中文字幕自拍vr一区二区三区| 国产男女猛烈无遮挡91| 最新国产精品亚洲| 最近2019年日本中文免费字幕| 国产精品久久一区主播| 欧美裸体男粗大视频在线观看| 国产成人综合av| 91精品久久久久久久久久久| 国产成人91久久精品| 中文字幕亚洲图片| 2019日本中文字幕| 欧美天天综合色影久久精品| 久久精品人人做人人爽| 国产欧美日韩精品专区| 欧美成人精品h版在线观看| 亚洲欧美制服第一页| 国产精品一区av| 欧美国产一区二区三区| www.亚洲一二| 久久久久久久电影一区| 日韩电影中文字幕av| 欧美日韩在线视频首页| 国产精品三级美女白浆呻吟| 91国产视频在线| 国产精品一区久久| 亚洲欧美精品在线| 久久视频在线免费观看| 2025国产精品视频| 亚洲性69xxxbbb| 日韩电影在线观看永久视频免费网站| 97国产精品人人爽人人做| 国产日韩精品电影| 久久久亚洲欧洲日产国码aⅴ| 久久影视电视剧免费网站清宫辞电视| 中国日韩欧美久久久久久久久| 亚洲黄色在线看| 欧美激情精品久久久久| 一区二区在线视频| 亚洲欧美激情精品一区二区| 日韩中文字幕国产精品| 欧美日韩午夜剧场| 国产综合久久久久| 日韩成人中文字幕| 成人黄色中文字幕| 国产精品久久久久久久app| 亚洲免费精彩视频| 国产日韩中文字幕在线| 黄色一区二区在线| 日韩免费不卡av| 国产99久久精品一区二区 夜夜躁日日躁| 久久精品99无色码中文字幕| 亚洲精品第一国产综合精品| 久久五月天色综合| 精品国产欧美成人夜夜嗨| 日韩中文在线中文网三级| 精品视频偷偷看在线观看| 2019中文字幕在线观看| 大量国产精品视频| 久久精品男人天堂| 中文字幕日韩视频| 久久久极品av| 欧美三级欧美成人高清www| 欧美激情免费在线| 欧美日韩免费在线| 国产精品第一页在线| 欧美亚洲激情在线| 日韩禁在线播放| 国产伊人精品在线| 国产成人亚洲综合91精品| 尤物yw午夜国产精品视频| 亚洲欧美日韩精品久久亚洲区| 日韩小视频网址| 亚洲免费视频一区二区| 色婷婷亚洲mv天堂mv在影片| 欧美体内谢she精2性欧美| 亚洲精品国产拍免费91在线| 69av视频在线播放| 欧美成aaa人片免费看| 欧美午夜片欧美片在线观看| 日韩国产精品亚洲а∨天堂免| 欧美午夜性色大片在线观看| 日韩欧美精品网址| 精品国产一区久久久| 中文字幕日韩av综合精品| 91色视频在线观看| 神马久久桃色视频| 热久久99这里有精品| 91av福利视频| 日韩专区中文字幕| 亚洲第一网站男人都懂| 国产精品96久久久久久| 91大神在线播放精品| 91禁外国网站| 国外日韩电影在线观看| 欧美激情一区二区三区成人| 欧美激情亚洲视频| 欧美电影免费观看| 亚洲性日韩精品一区二区| 亚洲精品在线看| 国产成人精品亚洲精品| 国产精品久久久久福利| 中文字幕在线精品| 国产精品久久久久久久电影| 91经典在线视频| 精品亚洲一区二区三区在线播放| 亚洲图中文字幕| 国产精品丝袜久久久久久不卡| 亚洲性视频网站| 国产精品久久久久久久久久新婚| 国产久一一精品| 日韩精品丝袜在线| 在线观看日韩www视频免费|