[DS&A]二分法查找
来源:互联网 发布:儿童绘画软件 绿色 编辑:程序博客网 时间:2024/06/05 13:25
二分法查找:适用于有序的顺序序列。
#include<iostream>#include<algorithm>#include<string>#include<cstring>using namespace std;class Person{private: string name; int age; public: Person(const char* name,int age):name(name),age(age){} friend bool operator>(Person &a,Person &b) {return a.name > b.name;} friend bool operator==(Person &a,Person &b) {return a.name==b.name;} friend ostream& operator<<(ostream& os,Person &p) {cout << p.name << "-" << p.age << endl;return os; } };int bsearch(Person a[],int left,int right,const string str){ Person p(str.c_str(),0); while(left < right) {int mid = (left+right)/2;if(p == a[mid]) return mid;else if(p > a[mid] ) bsearch(a,mid+1,right,str);else bsearch(a,left,mid-1,str); } return -1;}bool bubblesort(Person a[],int n){ bool flag =true; while(flag) {flag = false;for(int i = 0; i < n-1 ; i++){ if(a[i] > a[i+1]) {swap(a[i],a[i+1]);flag = true; }}--n; }}int main(){ Person p[3]={ {"chunge",28},{"zengge",29}, {"furong",50}}; bubblesort(p ,3); for(int i = 0; i < 3 ;i++)cout << p[i] << " "; cout << endl; int i = bsearch(p,0,2,"furong"); cout << i; return 0;}输出结果:
0 0
- [DS&A]二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 2014哈尔滨小米笔试题
- c++排序之插入排序
- 2013年小米校园招聘笔试题
- 利用Bibtex4Word实现Word写作时参考文献的插入和排版
- 希尔排序
- [DS&A]二分法查找
- poj1753(BFS+位存储)
- STL list链表的用法详解
- EasyUI——combobox级联
- 重建控制文件
- [c++] Monitoring the Computer's Power Status and Lid status
- boot read
- 2014找工作----扎实的基础和开阔的视野是企业最看重的因素
- Java中的多线程(二)之多线程同步