• Stars
    star
    347
  • Rank 122,141 (Top 3 %)
  • Language
    Jupyter Notebook
  • License
    GNU General Publi...
  • Created about 5 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Solid data structure and algorithms

Iridescent

Solid data structure and algorithms in Python

目前进度:数据结构部分已完成,算法部分即将开始完善链表和二叉树相关算法。Star this repo and come back later :)
(2022-06更新:终于更新了算法练习的部分)

Data Structure

数据结构我跟的主要知识体系是浙江大学的MOOC《数据结构》,以及这个GitHub仓库中的数据结构部分

数据结构分析

每种数据结构都用Python实现了常用操作,并分析了时间复杂度(其实通过代码也能分析出来),部分复杂的数据结构(红黑树/B树/堆/哈希表...)有我自己学习过程中的一些理解。完整代码在下面的ipynb文件中。

  • 数组
  • 链表
  • 堆栈
  • 队列
    • 循环队列
  • 二叉树
    • 二叉树的遍历
  • 二叉搜索树
  • 平衡查找树
    • AVL 树
    • 红黑树
    • B树、B+树
  • 字典树
  • 并查集
  • 哈希表

数据结构完整代码实现,含测试用例和注释

(建议在本地查看.ipynb文件,方便运行和页内跳转)

建议自己亲自实现一遍数据结构的所有操作,然后用我写的测试用例运行一下。自己写一遍能够掌握得更牢固。写的时候最好先看原理,理解每种操作怎么实现再自己写,我的代码仅仅作为参考,需要思路的时候再看我的代码,最好不要先看。

Algorithm

算法我跟的主要知识体系是 Robert Sedgewick 的《算法-第四版》,以及Coursera上面配套的Princeton的网课。部分知识点已经在数据结构当中用代码实现过了,所以就进行了省略。

大部分算法我都用了 Python 和 Golang 两种语言去实现,这样做不仅是熟悉语言的一种方式,也可以让你对算法对掌握更加牢固,同时如果有些地方不太看得懂,可以试试看另一种语言对实现,说不定能够获得更清晰的思路

算法分析

  • 算法复杂度分析
  • 排序算法
    • 冒泡排序
    • 选择排序
    • 插入排序
    • 希尔排序
    • 归并排序
    • 快速排序
    • 堆排序
  • 查找
    • 二分查找
    • 二叉搜索树
    • 红黑树
    • 散列表
  • 链表相关算法
  • 二叉树相关算法
  • 图相关算法
  • 字符串相关算法

算法练习

(建议在本地查看.ipynb文件,方便运行和页内跳转)

主要是为了方便算法的练习,一些测试代码用的数据结构已经在文件里构造好了。并且只练习最高频最经典的一些算法,方便快速找到手感。

More Repositories

1

Waking-Up

计算机基础(计算机网络/操作系统/数据库/Git...)面试问题全面总结,包含详细的follow-up question以及答案;全部采用【问题+追问+答案】的形式,即拿即用,直击互联网大厂面试🚀;可用于模拟面试、面试前复习、短期内快速备战面试...
9,401
star
2

stable-diffusion-multi-user

stable diffusion multi-user django server code with multi-GPU load balancing
Python
257
star
3

HEVC-CU-depths-prediction-CNN

Using convolutional neural networks to predict the Coding Units (CUs) depths in HEVC intra-prediction mode, in order to reduce the time of the encoding process in HEVC.
Python
74
star
4

Python-tools

Useful & handy tools implemented with Python in 200 lines or less. A good way to practice Python and get productivity improved at the same time!
Python
60
star
5

HEVC-deep-learning-pipeline

Integrating neural network models in HEVC encoder, to test the complexity reduction using deep learning in HEVC intra-prediction.
C++
52
star
6

Build-your-programming-skills

A learning road map for junior programmers focusing from basic to advanced technical skills
TypeScript
46
star
7

igxe-c5-buff-csgo-skins-sale-data-catch

Automatically get the csgo skins sale data on igxe.cn and buff and c5game.com.You can choose the specific skins to get data.
Python
32
star
8

Depth-Estimation-PyTorch

Monocular depth estimation using Feature Pyramid Network implemented in PyTorch 1.1.0
Jupyter Notebook
30
star
9

HEVC-CU-depths-dataset

A dataset that contains the Coding Unit image files and their corresponding depths for HEVC intra-prediction.
Python
29
star
10

seu_GPACalculator

automatically log in and calculate GPA for students in southeast university (2020)
Python
6
star
11

my-cpp-practice

What you can do with just a little primary C++ knowledge! (card game, sokoban, Klotski ...)
C++
5
star
12

Machine-Learning-notes

Notes of Andrew Ng's Machine Learning course from coursera.org
Jupyter Notebook
4
star
13

human-pose-estimation-GAN

Estimate 3D human SMPL model from a single RGB image, using GAN, ResNet, GRU, etc.
Python
1
star
14

GOLab-django

a website used for checking and monitoring real time csgo skins' sale data in popular markets using django2.1
Python
1
star