C/C++笔记(二) 2015/8/15

来源:互联网 发布:matlab中矩阵运算 编辑:程序博客网 时间:2024/06/06 06:32

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

0 0
原创粉丝点击