zoukankan      html  css  js  c++  java
  • c++ 11

    data1: 12 26 37
                 i
    data2: 24 30
                 j
    data3: 12 24 26 30 37
    一、归并排序
    平均时间复杂度O(2NlogN),稳定,对数据有序性不敏感,非就地排序,不适用于对海量数据进行排序。

    二、线性查找
    1.算法:逐个比较,找到为止。
    2.评价:O(N),对数据的有序性没有要求。

    三、二分查找
    1.算法:假设数据按升序排列,取中间位置值,如果目标等于中值,则查找成功;如果目标小于中值,则在中值左侧继续查找;如果目标大于中值,则在中值右侧继续查找;直到找到或者找不到为止。
    2.评价:O(logN),数据必须有序。

    四、函数模板
    1.通用语法
    template<class/typename 类型形参1, ...>
    返回类型 模板函数名 (形参表) {
      ...
    }

    2.实例化语法
    模板函数名<类型实参1, ...> (实参表);
    如果所有的类型参数都可以根据函数实参表推断出来,那么类型实参表可以省略——隐式推断。

    3.特化语法
    template<>
    返回类型 模板函数名<类型实参1, ...> (形参表) {
      ...
    }

    五、类模板
    1.通用语法
    template<class/typename 类型形参1, ...>
    class 类模板名 { ... };

    2.实例化语法
    类模板名<类型实参1, ...> 对象名 (...);
    模板 -实例化-> 类 -实例化-> 对象
          编译期       运行期

    3.特化语法
    1)全类特化
    template<>
    class 类模板名<类型实参1, ...> { ... };
    2)成员特化
    template<>
    返回类型 类模板名<类型实参1, ...>::成员函数名 (形参表) { ... }
    练习:任选一个排序函数,将其模板化,支持对任意类型(int、string、char*、Student,...)的数组进行排序。

    六、局部特化
    1.特化程度高者优先。
    2.针对指针特化优先。
    3.参数匹配高者优先。

    七、非类型参数与缺省参数
    1.模板除了带有类型参数以外,还可以带有非类型参数(值参数),但是非类型实参必须是由常量或具有常属性的变量(不能带volatile)组成的表达式。
    2.模板的类型参数和非类型参数都可以带有缺省值,但是与函数参数的缺省值一样,必须靠右。

    八、模板型的模板参数
    用一个模板类作为另一个模板的类型参数。

  • 相关阅读:
    [SQL server] IF ELSE 和 CASE WHEN 的用法
    SQL server游标基本结构
    SQLserver查看某个视图的创建语句
    SqlServer和Oracle修改表结构语句
    IE浏览器部分js代码不生效的问题
    SQL server将查询到的多行结果,拼接成字符串(列转行)
    SQL server将某个字符串将按指定字符分解成子字符串(行转列)
    安装weblogic时,运行configure.cmd报错、闪退、无法创建域
    黑苹果相关工具
    黑苹果安装问题集
  • 原文地址:https://www.cnblogs.com/elisha-blogs/p/3780714.html
Copyright © 2011-2022 走看看