数据结构与算法分析 随笔2

来源:互联网 发布:茉莉机器人源码 编辑:程序博客网 时间:2024/06/06 00:31
#include<iostream>using namespace std;/*n的二进制数中1的个数*//*n是奇数的话,它等于n/2的二进制表示中的1的个数加1*/int ones(int n){cout<<"调用"<<n<<endl;if(n<2)return n;return n%2+ones(n/2);}int main(){cout<<ones(15)<<endl;return 0;}

#include<iostream>#include<vector>#include<algorithm>using namespace std;/*二分搜索*//*对于已经排好序的元素,时间复杂度为O(logN)*/template<typename comparable>int binarySearch(const vector<comparable> & vec,const comparable &val){int low=0,high=vec.size()-1;int mid;while(low<=high){mid=(low+high)/2;if(val<vec[mid])high=mid-1;else if(val>vec[mid])low=mid+1;elsereturn mid;}return -1;}int main(){int a[]={4,-3,5,-2,-1,2,6,-2};size_t size=sizeof(a)/sizeof(int);vector<int> vec(a,a+size);sort(vec.begin(),vec.end());cout<<binarySearch(vec,5)<<endl;return 0;}

#include<iostream>#include<vector>#include<algorithm>#include<iterator>using namespace std;int main(){int a[]={4,-3,5,-2,-1,2,6};size_t size=sizeof(a)/sizeof(int);vector<int> vec(a,a+size);ostream_iterator<int> out(cout," ");copy(vec.begin(),vec.end(),out);cout<<endl;vector<int>::iterator it=vec.begin();while(it!=vec.end()){vector<int>::iterator p=vec.erase(it);it=p;if(it!=vec.end())it++;}copy(vec.begin(),vec.end(),out);cout<<endl;return 0;}

#ifndef WEIWEI_H#define WEIWEI_H#define maxLength 10template<typename object>class Queue{public:Queue(int f=0,int b=0,int l=0):front(f),back(b),length(l){}bool enQueue(const object &rhs){if(length==maxLength){cout<<"队列已满!"<<endl;;return false;}theArray[back]=rhs;back=(back+1)%maxLength;length++;return true;}bool deQueue(object &val){if(isEmpty()){cout<<"队列为空!"<<endl;return false;}val=theArray[front];front=(front+1)%maxLength;length--;return true;}bool isEmpty(){return length==0;}void print(){for(int i=0;i!=length;i++)cout<<theArray[(i+front)%maxLength]<<" ";}private:object theArray[maxLength];int front;int back;int length;};#endif

#include<iostream>#include"weiwei.h"using namespace std;int main(){Queue<int> q;for(int i=0;i!=9;i++)q.enQueue(i);q.print();cout<<endl;q.print();cout<<endl;int val;q.deQueue(val);q.print();cout<<endl;q.deQueue(val);q.print();cout<<endl;q.enQueue(9);q.enQueue(10);q.enQueue(11);q.print();cout<<endl;return 0;}

原创粉丝点击