Skip to content

This repo contains practice problems in datastructure and algorithms

Notifications You must be signed in to change notification settings

ayansen/code-logbook-jvm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Code Logbook

This repository contains solutions for standard programming problems structured by the algorithmic techniques or datastructures used to solve them

Algorithm Techniques

In mathematics and computer science, an algorithmic technique is a general approach for implementing a process or computation

Brute Force

Brute Force search or exhaustive search, also known as generate and test, is a very general problem-solving technique and algorithmic paradigm that consists of systematically enumerating all possible candidates for the solution and checking whether each candidate satisfies the problem's statement. An example of a brute force technique is backtracking.Backtracking is an algorithm where we traverse all the possible paths to find the correct solution.

Divide and Conquer

The divide and conquer technique decomposes complex problems recursively into smaller sub-problems. Each sub-problem is then solved and these partial solutions are recombined to determine the overall solution. This technique is often used for searching and sorting.

Dynamic Programming

Dynamic programming is a systematic technique in which a complex problem is decomposed recursively into smaller, overlapping sub-problems for solution. Dynamic programming stores the results of the overlapping sub-problems locally using an optimization technique called memoization

Greedy

A greedy approach begins by evaluating one possible outcome from the set of possible outcomes, and then searches locally for an improvement on that outcome. When a local improvement is found, it will repeat the process and again search locally for additional improvements near this local optimum. A greedy technique is generally simple to implement, and these series of decisions can be used to find local optimums depending on where the search began. However, greedy techniques may not identify the global optimum across the entire set of possible outcomes.

Graph Traversal

Graph traversal is a technique for finding solutions to problems that can be represented as graphs. This approach is broad, and includes depth-first search, breadth-first search, tree traversal, and many specific variations that may include local optimizations and excluding search spaces that can be determined to be non-optimum or not possible. These techniques may be used to solve a variety of problems including shortest path and constraint satisfaction problems.

About

This repo contains practice problems in datastructure and algorithms

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages