You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+148-6Lines changed: 148 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,147 @@
1
-
# Introduction
1
+
# Learn Data Structure and Algorithms by C
2
2
3
-
**You need to have basic understanding of the C programming language to proceed with the codes from this repository.**
3
+
> You need to have basic understanding of the C programming language to proceed with the codes from this repository.
4
+
5
+
6
+
7
+
## Table of Contents
8
+
-[Introduction to C](#introduction)
9
+
-[Data Structure](./Data%20Structure/)
10
+
-[Linked List](./Data%20Structure/Linked%20List/)
11
+
-[Stack](./Data%20Structure/Stack/)
12
+
-[Queue](./Data%20Structure/Queue/)
13
+
-[Binary Search Tree (BST)](./Data%20Structure/BST/)
14
+
- Heap
15
+
- Hash Table
16
+
- Disjoint Set Union (Union Find)
17
+
- Trie
18
+
- Suffix Array
19
+
- Segment Tree
20
+
- Binary Indexed Tree (BIT)
21
+
- Heavy Light Decomposition
22
+
23
+
24
+
-[Searching](./Searching/)
25
+
-[Linear Search](./Searching/Linear%20Search/)
26
+
-[Binary Search](./Searching/Binary%20Search/)
27
+
-[Ternary Search](./Searching/Ternary%20Search/)
28
+
29
+
30
+
-[Sorting](./Sorting/)
31
+
-[Selection Sort](./Sorting/Selection%20Sort/)
32
+
-[Bubble Sort](./Sorting/Bubble%20Sort/)
33
+
-[Insertion Sort](./Sorting/Insertion%20Sort/)
34
+
-[Merge Sort](./Sorting/Merge%20Sort/)
35
+
-[Quick Sort](./Sorting/Quick%20Sort/)
36
+
- Bucket Sort
37
+
-[Counting Sort](./Sorting/Counting%20Sort/)
38
+
- Heap Sort
39
+
-[Radix Sort](./Sorting/Radix%20Sort/)
40
+
41
+
42
+
- Graph Algorithms
43
+
- Graph Representation
44
+
- Breadth First Search (BFS)
45
+
- Depth First Search (DFS)
46
+
- Topological Sort
47
+
- Strongly Connected Components (SCC)
48
+
- Minimum Spanning Tree (MST)
49
+
- All Pairs Shortest Path (Floyd Warshall's Algorithm)
50
+
- Single Source Shortest Path Algorithm
51
+
- Djkastra's Algorithm
52
+
- Bellman Ford Algorithm
53
+
- Directed Acyclic Graph
54
+
- Bipartite Matching
55
+
- Articulation Point, Bridge
56
+
- Euler Tour/Path
57
+
- Hamiltonian Cycle
58
+
- Stable Marriage Problem
59
+
- Chinese Postman Problem
60
+
- 2-satisfiability
61
+
- Flow Algorithms
62
+
- Maximum Flow
63
+
- Minimum Cut
64
+
- Min-Cost Max Flow
65
+
- Maximum Bipartite Matching
66
+
- Vertex Cover
67
+
68
+
- Dynamic Programming
69
+
- Rod Cutting
70
+
- Maximum Sum (1D, 2D)
71
+
- Coin Change
72
+
- Longest Common Subsequence
73
+
- Longest Increasing Subsequence
74
+
- Matrix Multiplication
75
+
- Edit Distance (Levenshtein distance)
76
+
- 0/1 Knapsack
77
+
- Travelling Salesman Problem
78
+
- Optimal Binary Search Tree
79
+
80
+
81
+
- Greedy Algorithms
82
+
- Activity Selection/Task Scheduling
83
+
- Huffman Coding
84
+
- Knapsack Problem (Fractional Knapsack)
85
+
86
+
87
+
- String Algorithms
88
+
- Rabin-Karp Algorithm
89
+
- Knuth-Morris-Pratt Algorithm
90
+
- Z Algorithm
91
+
- Aho-Korasick Algorithm
92
+
- Manachers Algorithm
93
+
- Boyr-Moore Algorithm
94
+
95
+
96
+
- Number Theory
97
+
- Greatest Common Divisor (GCD)
98
+
- Longest Common Multiplier (LCM)
99
+
- Euler Totient (Phi)
100
+
- Prime finding(Sieve of Eratosthenes)
101
+
- Prime factorization
102
+
- Factorial
103
+
- Fibonacci
104
+
- Counting, Permutation, combination
105
+
- Exponentiation
106
+
- Big Mod
107
+
- Euclid, Extended euclid
108
+
- Josephus Problem
109
+
- Farey Sequence
110
+
- Catalan numbers
111
+
- Burnside's lemma/circular permutation
112
+
- Modular inverse
113
+
- Probability
114
+
- Chinese Remainder Theorem
115
+
- Gaussian Elmination method
116
+
- Dilworth's Theorem
117
+
- Matrix Exponentiation
118
+
119
+
120
+
- Computational Geometry
121
+
- Pick's Theorem
122
+
- Convex hull
123
+
- Line Intersection
124
+
- Point in a polygon
125
+
- Area of a polygon
126
+
- Line Sweeping
127
+
- Polygon intersection
128
+
- Closest Pair
129
+
130
+
131
+
- Game Theory
132
+
- Take Away Game
133
+
- Nim's Game
134
+
- Sprague-grundy Number
135
+
136
+
- Others
137
+
- BackTracking
138
+
- N-Queen's Problem
139
+
140
+
---
141
+
142
+
## Introduction
143
+
144
+
The type system in C is static and weakly typed. There are built-in types for integers of various sizes, both signed and unsigned, floating-point numbers, and enumerated types (enum). Integer type char is often used for single-byte characters. C99 added a boolean datatype (C99 added a builtin **_Bool** data type , and if you *#include <stdbool.h>*, it provides **bool** as a macro to **_Bool**.). There are also derived types including arrays, pointers, records (struct), and untagged unions (union).
4
145
5
146
### Primitive types and built-in data structures in C
6
147
C is a statically typed language. Each of the variables should be type casted.
@@ -21,6 +162,11 @@ Other than these there are some derived data types. they are -
21
162
-[C data types - Tutorialspoint](https://www.tutorialspoint.com/cprogramming/c_data_types.htm)
22
163
-[C programming data types - programiz](http://www.programiz.com/c-programming/c-data-types)
23
164
165
+
### Big-O Notation and Time Complexity Analysis
166
+
167
+
[Algorithms in plain English: time complexity and Big-O notation](https://medium.freecodecamp.com/time-is-complex-but-priceless-f0abd015063c)
0 commit comments