栈
VS2013中 栈的内存区域只有默认的1M //修改:项目设置->属性->链接器->系统
先进后出
静态区与程序共存,内存不会被会后利用,除非程序消亡
堆区,块语句执行完成亡
static
限制只能被当前的源文件所引用
插值查找法
int serch2(double *p, int n, int key)
{
int tou, wei, zhong;
tou = 0;
wei = n - 1;
while (tou <= wei)
{
//zhong = (tou + wei) / 2; //折半查找
zhong = tou + (wei - tou)*(key - p[tou]) / (p[wei] - p[tou]); //插值查找
if (p[zhong] == key)
return zhong;
else if (key > p[zhong])
tou = zhong + 1;
else
wei = zhong - 1;
}
return -1;
}
zhong = tou + (wei - tou)*(key - p[tou]) / (p[wei] - p[tou]); //插值查找的公式
(wei - tou) 就一共有多少个元素
(key - p[tou]) / (p[wei] - p[tou]) //确定比例
二分查找也可以是
zhong = (wei + tou)*1/2 = tou + (wei-tou)*1/2 //可以看做是插值查找的一个固定形式,比例固定为1/2