二分查找:
思路很简单,时间复杂制度是log时间,是对数时间。在这里重新复习一下,大O表示法里面的东西O(n)指的是操作数,例如:执行n次操作。代表的是**操作数的增速。
二分法的运行代码:**
#include
using namespace std;
int binary_search(int arr[],int item,int length){
int low = 0;
int high = length - 1;
int mid,guess;
while(low <= high)
{
mid = (low+high)/2;
guess = arr[mid];
if(guess == item)
{
return mid;
}
else if(guess > item)
{
high = mid - 1;
}
else
{
low = mid + 1;
}
}
return -1;
}
int main()
{
int my_list[10] = {2,7,8,9,10,15,23,65,44,85};
int len = sizeof(my_list)/sizeof(int);
cout<<”the result is: “<
return 0 ;
}
一些常见的时间复杂度:
最后一种时间复杂度一般是TSP算法,这种问题又叫完全NP问题,没法在多项式时间内找出问题的解。因此这种算法可以采用贪心算法找出接近的解。
