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
Understanding Algorithms and Data Structures, Learning Different Programming Languages 中文
Learn data structures and algorithms based on different programming languages, including C, Java, Python, JavaScript, Go, TypeScript, etc., with ample comments and explanations.
Project Features:
Covers a variety of algorithms such as numerical calculations, string search, tree traversal, sorting, dynamic programming, etc.
Each algorithm is implemented in multiple languages to help understand the features of different programming languages.
Examples are carefully designed for students or programmers to learn and analyze, improving programming skills.
Overview of Algorithms
What are common algorithms?
Text Search: Includes linear search, binary search, tree search, longest common subsequence, palindrome computation, etc., mainly for string searching.
Mathematical Computations: Includes base conversion, square roots, Fibonacci sequence, prime factorization, Pascal’s triangle, etc., mainly for numerical calculations.
Sorting Algorithms: Includes bubble, selection, insertion, shell, merge, quick, heap, counting, bucket, radix, etc., for ordering data.
Other Algorithms: Includes dynamic programming, greedy algorithms, divide and conquer, backtracking, graph algorithms (e.g., breadth-first search, depth-first search, Dijkstra’s algorithm, Kruskal’s algorithm, etc.), and machine learning and artificial intelligence algorithms such as classification, clustering, deep learning, reinforcement learning, etc.
Common Algorithm Ideas
Greedy Algorithm: A method that expects to find the global optimum by selecting the local optimum at each step.
Divide and Conquer: Breaks a problem into smaller subproblems, solves them independently, and then combines the results.
Dynamic Programming: Solves complex problems by breaking them down into simpler overlapping subproblems.
Backtracking: Solves problems by incrementally building candidate solutions and abandoning those that fail to meet the criteria.
Graph Algorithms: Includes breadth-first search, depth-first search, Dijkstra’s algorithm, Kruskal’s algorithm, etc., for solving graph-related problems.
Branch and Bound: A method for solving combinatorial optimization problems by systematically exploring the branches of the search tree.
Suitable for date calculations, holiday predictions, date conversions, etc.
Data Structures
Data structures refer to the ways data is organized and stored, aggregating data together for processing and organization. Different data structures have different efficiency for access, insertion, deletion, etc. By selecting the appropriate data structure, data can be processed efficiently. See also: Overview of Data Structures
A tree-like data structure, nodes are organized in hierarchical relationships, common types include binary tree, binary search tree, balanced tree, etc.
Non-linear structure, one root node, unlimited number of child nodes