Learning algorithem the hard way begining (part 1)

  • 时间:
  • 浏览:1
  • 来源:大发彩神8下载最新版—大发快三官网大发彩神

下图展示了常见的排序算法的时间和空间复杂化度:

根据《异类-不一样的成功启示录》一书中的描述,要想在任何有有一另4个领域当中称为专家,都需要经过 500 小时的刻意练习。具体的土法律法律依据包括:

Chunk it up

将待学习的领域切分为细化的知识点。在数据特征和算法领域,需要掌握的包括:

Feedback

获得反馈。学习相关领域时,在获取反馈需要要注意如下的几点:

及时地获取反馈

主动型反馈(主动获取)

阅读别人写的代码(Github、Leetcode)

Gogole

被动型反馈 (等待图片高人给予指点)

Code Review

Big-O Complexity Chart如下图,都才能直观得看一遍不同的时间复杂化度的渐进关系:

500 小时法则

下图展示了常见的数据特征中,对应的常见时间和空间复杂化度:

算法

递归

排序

二分查找

搜索

哈希算法

贪心算法

分治算法

回溯算法

动态规划

字符串匹配算法

Deliberate practicing刻意练习。刻意地,反复地练习相关领域的知识点。在初期地以前,它以前带你要的直接感受是:不舒服、不爽、枯燥,怎么让倘若才能坚持下来长期练习,必定才能获得成功。

数据特征

Array

LinkedList

Stack/Queue

PriorityQueue

HashTable

Tree/Binary Tree/Binary Search Tree

Heap

Skip List

Graph

Trie Tree

BloomFilter

LRU Cache