几种常用查找方法,待更新:
#include<iostream>
using namespace std;
int Sequential_Search(int *Array, int Number, int N)
{
for (int i = 0; i < N; i++)
{
if (Number == Array[i])
return i;
}
return -1;
}
int Binary_Search(int *Array,int Number,int N)//form the start elem and the end elem and change the the elem after one circulation
{
int end = N-1;
int start = 0;
int mid;
while (start < end)
{
mid = (start + end) / 2;
if (Number > Array[mid])
{
start = mid + 1;
}
else if (Number < Array[mid])
{
end = mid - 1;
}
else
{
return mid;
}
}
return -1;
}
int main()
{
int const N = 10;
int a[N] = {1, 2, 4, 5, 7, 8, 9, 10, 11, 12};
int temp = Sequential_Search(a, 8, N);
cout << "Sequential_Search:"<<temp << endl;
temp = Binary_Search(a, 8, N);
cout << "Binary_Search:" << temp << endl;
system("pause");
return 0;
}
第二种适合以排好序的数组,时间复杂度较低。