Skip to content

Commit 5ad563c

Browse files
committed
main README file updated
1 parent 28168f5 commit 5ad563c

File tree

1 file changed

+170
-3
lines changed

1 file changed

+170
-3
lines changed

README.md

Lines changed: 170 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,172 @@
1-
#Intro
1+
# Learn Data Structure and Algorithms by Python
22

3+
> You need to have basic understanding of the Python programming language to proceed with the codes from this repository.
4+
Python 3 is used for the implementation of the data structures and Algorithms
35

4-
### Primitive types or data structures in Python
5-
Integer, Float, Boolean, Char
6+
7+
8+
## Table of Contents
9+
- [Introduction to Python](#introduction)
10+
- [Data Structure](./Data%20Structure/)
11+
- [Linked List](./Data%20Structure/Linked%20List/)
12+
- [Stack](./Data%20Structure/Stack/)
13+
- [Queue](./Data%20Structure/Queue/)
14+
- Binary Search Tree (BST)
15+
- Heap
16+
- Hash Table
17+
- Disjoint Set Union (Union Find)
18+
- Trie
19+
- Suffix Array
20+
- Segment Tree
21+
- Binary Indexed Tree (BIT)
22+
- Heavy Light Decomposition
23+
24+
25+
- [Searching](./Searching/)
26+
- [Linear Search](./Searching/Linear%20Search/)
27+
- [Binary Search](./Searching/Binary%20Search/)
28+
- [Ternary Search](./Searching/Ternary%20Search/)
29+
30+
31+
- [Sorting](./Sorting/)
32+
- Selection Sort
33+
- [Bubble Sort](./Sorting/Bubble%20Sort/)
34+
- Insertion Sort
35+
- Merge Sort
36+
- Quick Sort
37+
- Bucket Sort
38+
- Counting Sort
39+
- Heap Sort
40+
- Radix Sort
41+
42+
43+
- Graph Algorithms
44+
- Graph Representation
45+
- Breadth First Search (BFS)
46+
- Depth First Search (DFS)
47+
- Topological Sort
48+
- Strongly Connected Components (SCC)
49+
- Minimum Spanning Tree (MST)
50+
- All Pairs Shortest Path (Floyd Warshall's Algorithm)
51+
- Single Source Shortest Path Algorithm
52+
- Djkastra's Algorithm
53+
- Bellman Ford Algorithm
54+
- Directed Acyclic Graph
55+
- Bipartite Matching
56+
- Articulation Point, Bridge
57+
- Euler Tour/Path
58+
- Hamiltonian Cycle
59+
- Stable Marriage Problem
60+
- Chinese Postman Problem
61+
- 2-satisfiability
62+
- Flow Algorithms
63+
- Maximum Flow
64+
- Minimum Cut
65+
- Min-Cost Max Flow
66+
- Maximum Bipartite Matching
67+
- Vertex Cover
68+
69+
- Dynamic Programming
70+
- Rod Cutting
71+
- Maximum Sum (1D, 2D)
72+
- Coin Change
73+
- Longest Common Subsequence
74+
- Longest Increasing Subsequence
75+
- Matrix Multiplication
76+
- Edit Distance (Levenshtein distance)
77+
- 0/1 Knapsack
78+
- Travelling Salesman Problem
79+
- Optimal Binary Search Tree
80+
81+
82+
- Greedy Algorithms
83+
- Activity Selection/Task Scheduling
84+
- Huffman Coding
85+
- Knapsack Problem (Fractional Knapsack)
86+
87+
88+
- String Algorithms
89+
- Rabin-Karp Algorithm
90+
- Knuth-Morris-Pratt Algorithm
91+
- Z Algorithm
92+
- Aho-Korasick Algorithm
93+
- Manachers Algorithm
94+
- Boyr-Moore Algorithm
95+
96+
97+
- Number Theory
98+
- Greatest Common Divisor (GCD)
99+
- Longest Common Multiplier (LCM)
100+
- Euler Totient (Phi)
101+
- Primality Testing
102+
- Prime finding(Sieve of Eratosthenes)
103+
- Prime factorization
104+
- Factorial
105+
- Fibonacci
106+
- Counting, Permutation, combination
107+
- Exponentiation
108+
- Big Mod
109+
- Euclid, Extended euclid
110+
- Josephus Problem
111+
- Farey Sequence
112+
- Catalan numbers
113+
- Burnside's lemma/circular permutation
114+
- Modular inverse
115+
- Probability
116+
- Chinese Remainder Theorem
117+
- Gaussian Elimination method
118+
- Dilworth's Theorem
119+
- Matrix Exponentiation
120+
121+
122+
- Computational Geometry
123+
- Pick's Theorem
124+
- Convex hull
125+
- Line Intersection
126+
- Point in a polygon
127+
- Area of a polygon
128+
- Line Sweeping
129+
- Polygon intersection
130+
- Closest Pair
131+
132+
133+
- Game Theory
134+
- Take Away Game
135+
- Nim's Game
136+
- Sprague-grundy Number
137+
138+
- Others
139+
- BackTracking
140+
- N-Queen's Problem
141+
- [Tower of Hanoi Problem](./Others/Tower%20of%20Hanoi/)
142+
143+
---
144+
145+
## Introduction
146+
147+
148+
### Big-O Notation and Time Complexity Analysis
149+
150+
[Algorithms in plain English: time complexity and Big-O notation](https://medium.freecodecamp.com/time-is-complex-but-priceless-f0abd015063c)
151+
152+
[Big-O Cheat Sheet Link](http://bigocheatsheet.com/)
153+
154+
### How to Use
155+
156+
Install Python 3.x in your machine [from here](https://www.python.org/downloads/release/python-343/) (if it's already not installed) and add it to your environment path so that it is accessible in terminal commands.
157+
158+
Then you can run a Python file like this:
159+
```python
160+
python file.py
161+
```
162+
or
163+
```python
164+
python3 file.py
165+
```
166+
167+
### Useful Links:
168+
* [Algorithms, 4th Edition (book by: Robert Sedgewick and Kevin Wayne)](http://algs4.cs.princeton.edu/home/)
169+
* [Khan Academy tutorial on Algorithms](https://www.khanacademy.org/computing/computer-science/algorithms)
170+
* [Topcoder Tutorials](https://www.topcoder.com/community/data-science/data-science-tutorials/)
171+
* [GeeksforGeeks](http://www.geeksforgeeks.org/)
172+
* [hackerearth Tutorial](https://www.hackerearth.com/practice/)

0 commit comments

Comments
 (0)