算法学习笔记(一):二分法及其实现
生活随笔
收集整理的這篇文章主要介紹了
算法学习笔记(一):二分法及其实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基本思想:二分法的一個前提是序列已經是有序的,然后將待查找值與序列的中點比較。根據比較結果,選擇下一步比較的部分。二分查找(binary search)就是一個不斷重復這一查找過程,直到找到這個值。
算法復雜度:O(lgn)
算法實現:
一:迭代法
int bin_search_iteration(int arr[],int start,int end,int x) {while (start<end){int mid = (start + end) / 2;if (arr[mid]<x){start = mid + 1;}else if (arr[mid]==x){return mid;}else{end = mid - 1;}}if (start == end)return arr[start] == x ? start : -1;else{return -1;}}二:遞歸法
int bin_search(int arr[],int start,int end,int x) {if (start == end)return arr[start]==x?start:-1;int mid = (start+end) / 2;if(arr[mid]==x){return mid;}else if(arr[mid]>x){return bin_search(arr, start,mid, x);}else{return bin_search(arr, mid+1,end, x);}}?
轉載于:https://www.cnblogs.com/haoliuhust/p/binary_search.html
總結
以上是生活随笔為你收集整理的算法学习笔记(一):二分法及其实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android+apk反编译+Mac
- 下一篇: php 双向队列类