国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C經典算法之二分查找法

2020-01-26 13:53:39
字體:
來源:轉載
供稿:網友

C經典算法之二分查找法

1.根據key查找所在數組的位置

#include <stdio.h>/* key = 9; 1 2 3 4 5 6 7 8 arr 3, 4, 5, 7, 9 , 11, 21, 23 low = 1  mid = (low + high)/2 = 4      high = 8; one   arr[mid] = 7 < 9;  so low = mid + 1 = 5; high = 8; mid = (low + high)/2 = 6 two   arr[mid] = 11 > 9  so low = 5 ,   high = mid - 1 = 5 mid = 5; arr[mid] = 9 == key if(key = 10) low = mid + 1 > high */int main(int argc, const char * argv[]){ int findByHalf(int arr[], int len, int key); int arr[] = {3, 4 , 5, 7, 9 , 11, 21, 23}; int len = sizeof(arr)/sizeof(int); int index = findByHalf(arr, len, 88); printf("index = %d/n", index); return 0;}int findByHalf(int arr[], int len, int key){ int low = 0; int high = len - 1; int mid ; while(low <= high){  mid = (low + high) / 2;  //右邊查找  if (key > arr[mid]) {   low = mid + 1;  //左邊查找  }else if (key > arr[mid]) {   high = mid - 1;  }else{   return mid;  } } return -1;}

2.插入一個數,得到其所在數組的位置

#include <stdio.h>/* key = 9; 1 2 3 4 5 6 7 8 arr 3, 4, 5, 7, 9 , 11, 21, 23 low = 1  mid = (low + high)/2 = 4      high = 8; one   arr[mid] = 7 < 9;  so low = mid + 1 = 5; high = 8; mid = (low + high)/2 = 6 two   arr[mid] = 11 > 9  so low = 5 ,   high = mid - 1 = 5 mid = 5; arr[mid] = 9 == key if(key = 10) low = mid + 1 > high */int main(int argc, const char * argv[]){ int findByHalf(int arr[], int len, int key); int arr[] = {3, 4 , 5, 7, 9 , 11, 21, 23}; int len = sizeof(arr)/sizeof(int); int index = findByHalf(arr, len, 88); printf("index = %d/n", index); return 0;}int insertByHalf(int arr[], int len, int key){ int low = 0; int high = len - 1; int mid ; while(low <= high){  mid = (low + high) / 2;  //右邊查找  if (key > arr[mid]) {   low = mid + 1;  //左邊查找  }else if (key > arr[mid]) {   high = mid - 1;  }else{   //如果arr[mid] == key   //就把key插入到這個數的后面   return mid + 1;  } } //如果low > high 說明 key > arr[mid]; //就把key插入到low對應的 這個數的位置 return low;}

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

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

圖片精選

主站蜘蛛池模板: 湟源县| 绥芬河市| 茂名市| 南昌市| 灵武市| 上饶市| 宜川县| 青州市| 明水县| 巢湖市| 开化县| 焉耆| 宜黄县| 全南县| 云梦县| 翼城县| 辉县市| 兴宁市| 新民市| 孟州市| 清镇市| 祥云县| 汶川县| 武汉市| 溧阳市| 政和县| 汤阴县| 鸡泽县| 金川县| 恩施市| 安吉县| 广水市| 河源市| 盘锦市| 凤城市| 文山县| 铜川市| 黑龙江省| 台州市| 阿拉善盟| 旬邑县|