首页 > 代码库 > 查找算法
查找算法
1、折半查找
1 // 递归算法 2 int BinarySearch(int item, Node *elem, int left, int right) 3 { 4 int mid = -1; 5 if(left <= right) { 6 mid = (left + right) / 2; 7 if(elem.val < item) 8 mid = BinarySearch(item, elem, (mid + 1), right); 9 else if(elem.val > item)10 mid = BinarySearch(item, elem, left, (mid - 1));11 }12 return mid;13 }14 15 // 非递归算法16 int BinarySearch(int item, Node *elem, int len)17 {18 int left = 0, right = len - 1, mid = -1;19 while(left <= right) {20 mid = (left + right) / 2;21 if(elem.val < item)22 left = mid + 1;23 else if(elem.val > item)24 right = mid - 1;25 else26 return mid;27 }28 return NOFOUND;29 }
OK哒!O(∩_∩)O哈哈~
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。