Basic Algorithms and Data Structures

source : codechef

Binary Search : tutorial with problemstutorial with implementationproblem
Quicksort : tutorial with implementationtutorial with problems
Merge Sort : tutorial with implementationtutorial with problems
Suffix Array : tutorial with implementationtutorial with implementationproblemproblemproblem
Knuth-Morris-Pratt Algorithm (KMP) : tutorialtutorial with implementationproblemproblemproblem
Rabin-Karp Algorithm : tutorial with implementationtutorialproblemproblem
Tries : tutorial with problemsTutorial : I, IItutorialproblemproblemproblem
Depth First Traversal of a graph : tutorial with implementationtutorial with problemsproblemproblemproblem
Breadth First Traversal of a graph : tutorial with implementationtutorial with problemsproblemproblemproblemFlood Fill
Dijkstra's Algorithm : tutorial with problemsproblemtutorial(greedy)tutorial (with heap)implementationproblemproblem
Binary Indexed Tree : tutorial with problemstutorialoriginal papertutorialtutorialproblemproblemproblemproblem,problemproblem
Segment Tree (with lazy propagation) : tutorial with implementationtutorialtutorial with problems and implementation,tutorial with implementationPersistent Segment Tree, problems same as BIT, problem
Z algorithm : tutorial with problemtutorial, problems same as KMP.
Floyd Warshall Algorithm : tutorial with implementationproblemproblem
Sparse Table(RMQ) : tutorial with problemstutorial with implementation(C++)java implementation
Heap / Priority Queue / Heapsort : implementation with explanationtutorialimplementationproblem, reading the chapter from clrs is highly recommended.
Modular Multiplicative Inverse
nCr % M
Suffix Automaton : detailed papertutorial with implementation (I)tutorial with implementation (II)problemproblem,problemproblemtutorial with implementation
Lowest Common Ancestor : tutorial with problemstutorial(binary tree) with implementationdetailed paper for LCA in DAGsproblemproblem
Counting Inversions : Divide and ConquerSegment TreeFenwick Treeproblem
Euclid's Extended Algorithm
Suffix Tree : tutorialtutorialtutorialtutorialimplementationimplementationproblemproblemproblemproblem
Dynamic Programming : chapter from clrs(essential), tutorial with problemsproblemproblemproblemproblemproblem,tutorialproblemproblemproblemlongest increasing subsequencebitmask dpbitmask dpoptimizationproblemproblem,problemproblemproblemproblemproblem, dp on trees : III
Basic Data Structures : tutorialStack implementationQueue implementation and tutorialLinked list implementation
logarithmic exponentiation
Graphs : definition, representationdefinition, representationproblemproblem
Minimum Spanning Tree : tutorialtutorial with kruskal's implementationPrim's implementationproblemproblemproblem,problemproblem
Efficient Prime Factorization
Combinatorics : tutorial with problemsproblem
Union Find/Disjoint Set : tutorialtutorial with problemsproblemproblemproblem
Knapsack problem : solution and implementation
Aho-Corasick String Matching Algorithm : tutorialimplementationproblemproblemproblemproblem
Strongly Connected Components : tutorial with implementationtutorialproblemproblemproblem
Bellman Ford algorithm : tutorial with implementationtutorial with implementationproblemproblem
Heavy-light Decomposition : tutorialtutorialimplementationimplementationproblemproblemproblemproblemproblem,problemproblem
Convex Hull : tutorial with jarvis's algorithm implementationtutorial with graham scantutorialimplementationproblem,problemproblemproblem
Line Intersection : tutorial with imp.tutorial with problems
Sieve of Erastothenes
Interval Tree : tutorial with implementationproblemproblemproblemproblemproblemproblemtutorial
Counting Sort
Probabilities
Building up the recurrence matrix to compute recurrences in O(logN) time
Network flow : (Max Flow)Tutorial : I, IIMax flow(ford-fulkerson) tutorial with implementation(Min cut) tutorial with implementation(Min cost flow)Tutorial : I, II, IIIDinic's algorithm with implementationMax flow by Edmonds Karp with implementationproblemproblemproblemproblemproblemproblemproblemproblemproblemproblemproblem,problemproblemproblemproblem
K-d tree : tutorialtutorialimplementationproblem
Deque
Binary Search Tree : tutorial with implementationSearching and insertionDeletion
Quick Select : implementationimplementation
Treap/Cartesian Tree : tutorial(detailed)tutorial with implementationproblem
Game Theory : detailed papertutorial with problemsGrundy numbersTutorial with example problems - I, II, III, IVtutorial with problemsproblemproblemproblemproblemproblemproblemproblemproblemproblemproblemproblemNim
STL (C++) : I, IICrash Course
Maximum Bipartite Matching
Manacher's Algorithm : implementationtutorialtutorial with implementationtutorial with implementationproblemproblem,problem
Miller-Rabin Primality Test : Code
Stable Marriage Problem
Hungarian Algorithm
Sweep line Algorithm : III
LCP : tutorial with implementationtutorial with implementation
Gaussian Elimination
Pollard Rho Integer Factorizationproblem
Topological Sorting
Detecting Cycles in a Graph : Directed - III Undirected : I
Geometry : Basics
Backtracking : N queens problemTug of WarSudoku
Eulerian and Hamiltonian Paths : tutorialtutorial(eulerian path and cycle)implementation(hamiltonian cycle)implementation
Graph Coloring : tutorial with implementation
Meet in the Middle : tutorialimplementation
Arbitrary Precision Integer(BigInt)II
Radix SortBucket Sort
Johnson's Algorithm : tutorialtutorialimplementation
Maximal Matching in a General Graph : Blossom/Edmond's Algorithm with implementationTutte Matrixproblem
Recursion : I, IITowers of Hanoi with explanation
Inclusion and Exclusion Principle


Data Structures
Follow this map to review the data structure and algorithm, the knowledge points inside are thorough, interview data structure problems.

 The importance of data structures and algorithms must be emphasized. No matter what programming language you learn, no matter you are engaged in front-end, back-end, algorithm, data mining, machine learning, artificial intelligence and other positions, data structures and algorithms can not be bypassed. Language independence, position independence. Data structures and algorithms also appear frequently during interviews. Basically, more than 50% of the interview time will ask about this content. In this regard, do you dare not learn The following is the directory structure of the map.

Data Structures and Algorithms
Basic concepts & terminology
Data & Data Elements & Data Items & Data Objects
Logical structure & storage structure
Logical structure

Linear structure

Linear table

General linear table

Linear table
Special linear table

Stack and queue
String
Generalization of linear tables

Array
Generalized table
Nonlinear structure

Tree structure

tree

Binary tree

Graph structure

Directed graph

Undirected graph

Storage structure

Sequential storage structure

Chain storage structure

Data types & abstract data types
Algorithm & Algorithm Analysis
The algorithm is a limited sequence of operations specified to solve certain types of problems

Algorithm characteristics

Finite

Certainty

feasibility

Valid input

Algorithm output

Evaluation algorithm

Correctness

readability

Robustness

High efficiency

Algorithm efficiency analysis

Algorithm time complexity

Algorithm space complexity

Linear structure
Linear table
Sequential representation

Sequence table: logical & physical sequence are adjacent

Chain representation

Single list

Doubly linked list

Circular list

Comparison of linked list and sequence list

Spatial dimension comparison

Time dimension comparison

Interview questions for linked lists and sequence lists

Generalization of linear tables

Array

Generalized table

Stack
Definition & characteristics of stack

Last in first out

Stack representation & common operations

Sequential stack & chain stack

Stacking & Unstacking

Stack and recursion

Stack application

queue
Queue definition & characteristics

First in first out

Representation of queue & common operations

Circular queue & chain queue

Dequeue & Enqueue

Queue application

string
Concept of string

The structure of the string

Sequential storage

Chain storage

String matching algorithm

BF algorithm

KMP algorithm

Nonlinear structure
tree
Basic concepts of trees

Binary tree

Properties & storage structure

Binary tree traversal

Linear binary tree

The establishment of binary tree

Huffman tree

basic concept

Construction algorithm

Huffman coding

AVL tree

B tree

Fig
concept

Storage structure

Adjacency list

Adjacency matrix

Cross list

Adjacency multiple table

Edge set array

Traverse

Depth-first traversal

Breadth-first traversal

application

Minimum spanning tree

Shortest path

Topological sorting

Critical Path

Advanced data structure
Top-down stretch tree
Red black tree
insert

Rotate frequently when inserting

delete

Deterministic jump table
AA tree
treap tree
kd tree
Paired heap
algorithm
Find
concept

Linear table lookup

Sequential search

Binary search

Block search

Tree search

Binary tree lookup

AVL tree lookup

B-tree

B + tree

Hash lookup

concept

Conflict resolution

Sort
concept
Bubble Sort
Select sort
Insert sort
Hill Sort
Heap sort
Merge sort
Quick sort
Cardinality sorting
Bucket sorting
Sorting of large data structures
External sorting (non-memory sorting)
Graph theory algorithm
Greedy algorithm
Divide and conquer algorithm
Dynamic programming
Randomization algorithm
Backtracking algorithm
————————————————
https://blog.csdn.net/qq_38646470/java/article/details/104547401

Baidu search Dragon twelve can find my article.
————————————————
https://blog.csdn.net/qq_38646470/java/article/details/104547401

Comments

Post a Comment

Popular posts from this blog

VMware fix for Invalid manifest and ova file import failed errors

SOAPUI - import certificate

Session Timeout in Oracle Access Manager