yuenshome / yuenshome.github.io

https://yuenshome.github.io
MIT License
83 stars 15 forks source link

Exam #36

Open ysh329 opened 5 years ago

ysh329 commented 5 years ago

算法数据结构

  1. 写出下列排序的【代码】、(最差最好平均)【时间和空间复杂度】(最坏情况下的分析)、【稳定性】:
    1. 快排;
    2. 归并;
    3. 堆排;
  2. 字符串:
    1. 字符串拷贝、内存拷贝;
    2. 字符串查找Sunday算法字符串匹配算法综述 - Franky== - 博客园字符串匹配--Sunday算法 - 简书
  3. 链表、线性表
    1. 链表反转
    2. 哈希表原理、优缺点
  4. 二叉树
    1. 通过前序中序得到后续;
ysh329 commented 5 years ago

C/C++/Python

C/C++

  1. static修饰函数对应的特点、修饰的变量的特点;
  2. 顶层const和底层的区别;
  3. 如何清空vector,vector怎么实现扩容;
  4. C++多态的实现方式(静多态、动多态);
  5. 什么是抽象基类;
  6. 什么是虚函数表和虚函数表指针;
  7. 什么是虚基类;
  8. 用C++实现单例模式(懒汉式、饿汉式);
  9. 实现MyString类;
  10. 什么是移动构造;
  11. 默认构造的是浅拷贝还是深拷贝;
  12. 什么是3/5法则,什么时候需要实现拷贝构造、析构函数等;
  13. 是否了解C++多线程;

Python

  1. 什么是yield;
  2. 什么是装饰器;
  3. list、tuple的区别;
  4. 为什么tuple不可哈希;
  5. 浅拷贝和深拷贝;
  6. 生成器和迭代器的区别;
ysh329 commented 5 years ago

机器学习

公式推导

  1. 推导逻辑回归公式;
  2. SoftMax公式推导;
  3. 推导支持向量机公式;
  4. 推导牛顿法和拟牛顿法(如DFP、BFGS);
  5. L-BFGS相比BGFS的优势;
  6. 推导决策树;
  7. 推导GBDT;
  8. 推导AdaBoost;
  9. 推导RandomForest;

问答

  1. 常见损失函数以及相应模型;
  2. L1、L2正则化是什么,区别(稀疏性怎么体现);
  3. 常见正则化方法(深度学习),防止过拟合的方法有哪些;
  4. 模型集成策略有哪些(bagging、boosting、ensemble),以及区别;
  5. 怎么做特征选择;
  6. 简述xgboost;
  7. lightGBM相比xbgoost快在哪儿;

凸优化

  1. 动量法;
  2. Adagrad;
  3. AdaDelta;
  4. RMSProp;
  5. Adam;
ysh329 commented 5 years ago

深度学习

代码

  1. conv
    1. direct
    2. im2col+gemm
    3. fft
    4. winograd
  2. pooling
  3. bn
  4. scale
  5. relu
  6. softmax

问答

  1. backbone
    1. alexnet
    2. vggnet
    3. googlenet
    4. resnet
  2. 检测
    1. RCNN系列
      1. RCNN
      2. fast rcnn
      3. faster rcnn
      4. mask rcnn
      5. focal loss
    2. YOLO系列
      1. YOLOv2
      2. YOLOv3
    3. SSD
  3. 分割
    1. UNet
    2. FCN
  4. 轻量网络
    1. mobilenetv1, v2
    2. squeezenetv1, v2
    3. shufflenetv1, v2
  5. 剪枝压缩量化
    1. 剪枝
    2. 稀疏化
    3. 量化
ysh329 commented 5 years ago

优化

  1. 寄存器与缓存;
  2. CPU结构;
  3. GPU结构;
  4. intel intrinsic;
  5. arm neon;
  6. CPU gemm优化流程;
  7. opencl基础;
  8. arm mali gpu optimize guide;
  9. GPU gemm优化流程;
ysh329 commented 5 years ago

大数据

  1. hadoop生态有哪些;
  2. Spark Lazymode;
  3. Spark RDD;
  4. Spark MLlib组件;
  5. Spark写一个WordCount;
  6. Spark为什么快;
  7. C语言实现map/reduce操作

5. Spark写一个WordCount;

text_file = sc.textFile("hdfs://...")
counts = text_file.flatMap(lambda line: line.split(" ")) \
             .map(lambda word: (word, 1)) \
             .reduceByKey(lambda a, b: a + b)
counts.saveAsTextFile("hdfs://...")

6. Spark为什么快

Speed Run workloads 100x faster.

Apache Spark achieves high performance for both batch and streaming data, using a state-of-the-art DAG scheduler, a query optimizer, and a physical execution engine.

7. C语言实现map/reduce操作

#include <stdio.h>
//函数指针申明
typedef int (*mapFunction)(int);
typedef int (*reduceFunction)(int,int);
#define ERROR -1;

//-----------------Map和Reduce操作-----------------
/*
* 对list数组的数据进行处理,然后存储在list数组中
*/
void map(mapFunction func,int *list,int len)
{
    int i;
    for(i=0;i<len;i++)
    {
        list[i] = func(list[i]);
    }
}

int reduce(reduceFunction func,int *list,int len)
{
    if(len <= 0) return ERROR;
    int retVal = 0;
    for(int i=0; i<len; i++){
    retVal = func(retVal, list[i]);
    return retVal;
}

//-----------------------测试-------------------------
int square(int i) {
    return i*i;
}

int add(int i,int j) {
    return i+j;
}

int main(int argc,char*argv[]) {
    int array[5];
    for(int i=0; i<5; i++){
    array[i] = i;
    }

    mapFunction mapFuncPointer = (mapFunction)&square;
    reduceFunction reduceFuncPointer = (reduceFunction)&add;
    map(mapFuncPointer,array,5);
    int result = reduce(reduceFuncPointer,array,5);
    printf("The result is %d ",result);
    return 0;
}

作者:naivebaby 来源:CSDN 原文:https://blog.csdn.net/naivebaby/article/details/1357457 版权声明:本文为博主原创文章,转载请附上博文链接!