我的博客

8 月 15 日面试

目录
  1. 自我介绍
  2. Python
    1. Python 如何处理代码缩进? 统一空格或 tab,使用别人代码的时候尽量避免复制,而使用 import
    2. 介绍 Python 模块的定义: 物理上就是一个磁盘上的文件夹,里面建立一个 __init__.py 文件,可以被其他代码 import。逻辑上是代码的集合的封装,可以被其他程序引用。
    3. 用过哪些IDE:PyCharm、vim、Jupyter notebook
    4. Python 如何实现多线程:threading.Thread, 还有线程池
  3. Linux
    1. 用过哪些命令:(除了常用命令外)
      1. awk
      2. ps
      3. grep
      4. cat
      5. sort
      6. uniq
      7. ps
      8. netstat
      9. lsof
      10. ping / traceroute
      11. htop
      12. find
      13. du
      14. df
      15. ssh
      16. sftp
    2. git 如何减少冲突:勤提交
    3. 如何免密登录:ssh-copy-id
  4. 大数据:熟悉哪些大数据组件
    1. 相似性 hash (如何实现)
    2. MapReduce的原理
    3. Flink
    4. Spark
    5. 有没有读过源码(我没读过)
  5. 项目:任选一个项目讲一下
  6. 代码,随便写一个排序,用任何语言都可以

我用 python 写了一个空间复杂度很烂的快排(但是写起来快)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#coding=utf-8
import sys
#str = input()
#print(str)

def qsort(l):
if len(l) == 0:
return l
ll, rr = [], []
for x in l[1:]:
if x < l[0]:
ll.append(x)
else:
rr.append(x)
ll = qsort(ll)
rr = qsort(rr)
return ll + [l[0]] + rr

import random
l = [random.randint(1,100) for i in range(20)]
print(l)
print(qsort(l))

评论无需登录,可以匿名,欢迎评论!