Home - liuzhen153/play-algorithm-python GitHub Wiki

⌨玩转算法 - Python语言描述

以最简单的方式走进算法的世界,我们要从入门到努力,不要从入门到放弃。 目标读者:

  • 零基础同学
  • 刚入门同学
  • 想快速复习的同学

标志-草图.png

❗声明

所有实现参考了很多书籍或前辈的分享,只用于学习和演示,请注意以下几点:

  • 我们并不完全保证内容的标准性,如遇到有问题的地方还请及时指正
  • 其中很多内容可能来自书籍或网络上的分享,如果冒犯了您的著作权等,请及时指出,我们会第一时间处理
  • 所有实现均用于学习和演示目的,它们的效率将低于很多标准库中的实现
  • 无特殊说明,示例代码均基于python3
  • 本教程主要目的是学习或复习算法,均不做异常捕获
  • 相对于code,wiki会有一到两天的延迟(整理需要时间🙂)

❓学习路线

算法理论>>

  • 什么是算法
  • 算法和程序的区别
  • 运行时间的计算和表示
  • 如何选择算法

数据结构>>

  • 什么是数据结构
  • 如何选择数据结构
  • 几种基本的数据结构:链表、数组、栈、堆、队列、哈希、二叉树

Python中的数据结构>>

算法实现

排序

  • 冒泡排序
  • 选择排序
  • 堆排序
  • 插入排序
  • 归并排序
  • 快速排序

数组

  • 线性查找
  • 二分查找

💡推荐学习(待规划,可能会取消)

安全

  • 哈希函数
  • 共享秘钥加密
  • 公开密钥加密
  • 混合加密
  • 迪菲-赫尔曼密钥交换
  • 消息认证码
  • 数字签名
  • 数字证书

  • 广度优先搜索
  • 深度优先搜索
  • 贝尔曼-福特算法
  • 狄克斯特拉算法
  • A*算法

聚类

  • k-means算法

其他

  • 欧几里得算法
  • 素性测试
  • 网页排名
  • 汉诺塔

📚参考附录