For study purpose, record all algorithms I have learned, from simple to comlicate