1.二分法:
一直取中间值与要找的数比较,
例如:
#includeusing namespace std;int main(){ int a[]={1,2,3,4,5,6,7,8,9}; int x,left=0,right=sizeof(a),mid=(left+right)/2; cout<<"数组是a[]={1,2,3,4,5,6,7,8,9},我们找的数字是:"<>x; while(a[mid]>x) { if(a[mid]!=x) right=mid;//右边变成了right else left=mid;//左边变成了left mid=(left+right)/2;//中间变成了mid } cout<
2.栈和队列
数据结构是计算机存储,组织数据的方式,数据结构主要包括数组、链表、栈,队列、树。
栈也被称为栈堆,是一种先进后出,删除和插入都在栈顶操作的线性表
图解:
栈的特性:先进后出,后进先出。
最先放入栈的内容最后被拿出来,最后放入栈的内容最先被拿出来。
栈的插入:
push():在栈顶插入元素。
例如;push(1),就是在栈顶插入了1;
栈的删除:
pop():在栈顶移除一个元素,并将栈数-1。
栈的递归应用:一个直接调用自己或通过一系列的调用语句间接的调用自己的函数。
#includeint f(int m){ if(m==1) return 1; else { printf("m=%dn",m); return f(m-1); }int main(){ int n; int f(int m); printf("请输入一个大于1的数:"); scanf("%d",&n); printf("%d",f(n)); return 0;}