数据结构和算法——算法 查找算法(二分查找法)实现

1.算法:解决问题的方法


  算法实现在程序里一般表现为一个函数,形参是输入,返回值是输出,函数体是加工过程
  当然,cout<<也是输出,也可以输出到文件里


  特点:
  有输入输出(输入不一定是键盘输入的输入,输出也不定输出在屏幕上,也可是文件)
  有穷性
  可行性
  确定性

关心一个算法最主要的是正确性
  其次性能(时间,空间),时间复杂度,空间复杂度
  然后是可靠性(健壮性)

  算法数量级:N N^2  查找树logN
  log2 1024=10

2.二分法查找,折半查找

  前提是数组里的元素都排序好

  冒泡排序的复杂度是N^2

设计算法的方法:
  穷举法(暴力法) 每一个都试一试 看哪个最优
  贪心策略(局部最优) 当前状态下做好的步骤
  深度优先  广度优先
  分治法    把一个问题拆成几个小问题
  递归法    如果一个问题拆分成跟原来类似的小问题
  遗传算法
  神经网络
 

3.二分查找算法实现

  二分查找,有序数据,然后采用递归查找;只是用分治法

02binary.cpp


#include 
using namespace std;
class Person{
	string name;
	int age;
	string addr;
public:
	Person(const char* n, int a, const char* ad)
	:name(n),age(a),addr(ad){}
	friend bool operator<(const Person& a, const Person& b){
		return a.name> name;
	Person* p = binarysearch(a,5,name);
	if(p!=NULL) cout << *p << endl;
	else cout << "找不到" << endl;
}


你可能感兴趣的:(数据结构)