二分查找法實現

查找分爲靜態查找和動態查找

靜態查找主要包括順序查找和二分查找(折半查找)。順序查找是我們常用的一種查找方式,它有順序表的順序查找和鏈表的順序查找,這兩部分在前面學習線性表時都有學習。二分查找是一種針對有序表進行的查找,其效率高,比較次數少。

動態查找是指可以對錶進行刪除和插入操作。主要以二叉排序樹爲主學習即可。

二分查找代碼實現:

#include<iostream>
using namespace std;

int binary_find(int a[], int n, int key)
{
    int low = 0;
    int high = n - 1;
    int mid;
    
    while(low <= high)
    {
              mid = (low + high)/2; 
              if(a[mid] == key) break;
              else if (a[mid] < key)
              low = mid + 1;
              else if(a[mid] > key)
              high = mid - 1;
    }
    if (low <= high)
    return mid;
    else
    return -1;
}
int main()
{
    int A[10] = {1,2,3,4,5,6,7,8,9,10};
    int c = binary_find(A, 10, 6);
    cout << "position of key : "<< c << endl;
    system("pause");
    return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章