分类 "CODE & algorithm" 下的文章
>置顶<

给定N个项目的数组,Merge Sort将:
1.将每对单独的元素(默认情况下,已排序)合并为2个元素的排序数组(Merge each pair of individual element (which is by default, sorted) into sorted arrays of 2 elements,

2.将每对2个元素的排序数组合并为4个元素的排序数组, 重复这个过程...,(Merge each pair of sorted arrays of 2 elements into sorted arrays of 4 elements, Repeat the process...,

3.最后一步:合并2个N / 2个元素的排序数组(为了简化本讨论,我们假设N是偶数)来获得N个元素的完全排序数组。(Final step: Merge 2 sorted arrays of N/2 elements (for simplicity of this discussion, we assume that N is even) to obtain a fully sorted array of N elements.

This is just the general idea and we need a few more details before we can discuss the true form of Merge Sort.


阅读全文

     枚举算法(穷举法),就是按照问题本身的性质,一一列举出该问题所有可能的解,并在列举的过程中, 逐一检验 每个解是否就是真正的解。 若是,则采纳这个解;否则抛弃它。
注意:
    · 不能遗漏,否则可能导致结果不正确(边界与特殊值检查、容易挖坑)

    · 不能重复 ,否则可能导致效率比较低 (优化的意义)

 特点: 1.枚举的解准确而全面
           2.实现简单 (通过循环/递归实现)
           3.执行效率提升空间往往比较大





阅读全文

模板是 c++ 最重要的特性之一,模板函数、模板类、类中的模板函数、类中的模板类、模板类中的模板类等等,可以写出太多强大的代码,这也是模板的魅力所在,而 STL 就是基于模板的,所以各种意义上都有必要掌握模板的基本用法。

引用《c++ primer》, 《STL 源码解析》

                                                 ※ 使用模板的目的就是能够让程序员编写与类型无关的代码。※

比如C++编写了一个交换两个int类型的swap函数,这个函数就只能实现int型,对double、char真相类型就无法实现,要实现这些类型的交换就要重新编写另一个swap函数。而使用模板的目的就是要让这些程序的实现与类型无关。比如让一个swap模板函数既可以实现int型,又可以实现double型的交换。
 (模板是相对于编译器而言,顾名思义就是向编译器提供一个处理事务的模板,以后需要处理的东西,如果都是这个事务类型、那么统统可以用这个模板处理。)


阅读全文

Title - Artist
0:00