Improvement in Progress ..

Computer Science

Master Computer Science Lingo: Our Comprehensive Glossary

Algorithm

A step-by-step procedure for solving a problem or achieving a specific task in a finite amount of time.

Big O notation

A notation used to describe the upper bound of an algorithm's running time, often used to compare the efficiency of different algorithms.

Binary search

An efficient algorithm for finding an item from a sorted list of items.

Brute force algorithm

An algorithm that solves a problem by trying all possible solutions and then choosing the best one.

Backtracking

A general algorithmic technique that incrementally builds candidates to the solutions, and abandons each partial candidate `c` ('backtracks') as soon as it determines that `c` cannot possibly be completed to a valid solution.

Bellman-Ford algorithm

An algorithm for finding the shortest path between a source vertex and all other vertices in a weighted graph, it can also detect negative cycles.

Branch and Bound

A general algorithmic technique that incrementally builds candidates to the solutions and abandons some as soon as it can prove that the remaining candidates cannot possibly give a better solution than the current best one.

Breadth-first search

An algorithm for traversing or searching tree or graph data structures. It starts at the tree root (or some arbitrary node of a graph, sometimes referred to as a 'search key') and explores the neighbor nodes first, before moving to the next level neighbors.

Best-first search

An algorithm that uses a priority queue to explore the most promising next node first.

Dijkstra's algorithm

An algorithm for finding the shortest path between a source vertex and all other vertices in a weighted, non-negative graph.

Depth-first search

An algorithm for traversing or searching tree or graph data structures. It starts at the tree root (or some arbitrary node of a graph, sometimes referred to as a 'search key') and explores as far as possible along each branch before backtracking.

Divide and conquer algorithm

An algorithm that breaks down a problem into smaller subproblems and solves each subproblem individually before combining the solutions.

Dynamic programming

A technique used to solve problems by breaking them down into smaller subproblems and storing the solutions to these subproblems in a table to avoid redundant computation.

Floyd-Warshall algorithm

An algorithm for finding the shortest paths between all pairs of vertices in a weighted, directed graph.

Johnson's algorithm

An algorithm for finding the shortest paths between all pairs of vertices in a sparse, weighted, directed graph.

Greedy algorithm

An algorithm that makes the locally optimal choice at each step with the hope of finding a global optimum.

Heuristic algorithm

An algorithm that uses a set of rules or a 'heuristic' to make decisions and find solutions.

Iterative algorithm

An algorithm that repeats a specific process until a certain condition is met.

Kruskal's algorithm

An algorithm for finding the minimum spanning tree of a connected, undirected graph.

Prim's algorithm

An algorithm for finding the minimum spanning tree of a connected, undirected graph.

Recursive algorithm

An algorithm that calls itself to solve a problem by breaking it down into smaller subproblems.

Time complexity

A measure of an algorithm's efficiency in terms of the amount of time it takes to run as a function of the size of the input.

Space complexity

A measure of an algorithm's efficiency in terms of the amount of memory it uses.

Merge sort

An efficient, general-purpose, comparison-based sorting algorithm.

Quick sort

An efficient, general-purpose, comparison-based sorting algorithm.

Radix sort

An integer sorting algorithm that sorts data with integer keys by grouping keys by the individual digits which share the same significant position and value.

Trie

A tree-based data structure that is used to store an associative array where the keys are sequences (strings), providing a means of retrieval in O(k) time, where k is the length of the key.

Bloom filter

A space-efficient probabilistic data structure, that is used to test whether an element is a member of a set.

Hash table

A data structure that implements an associative array abstract data type, a structure that can map keys to values.

Red-black tree

A type of self-balancing binary search tree in computer science.

AVL tree

A self-balancing binary search tree in computer science.

B-tree

A self-balancing tree data structure that keeps data sorted and allows searches, sequential access, insertions, and deletions in logarithmic amortized time.

Fibonacci heap

A data structure for priority queue operations, consisting of a collection of heap-ordered trees.

K-d tree

A space-partitioning data structure for organizing points in a k-dimensional space.

Splay tree

A self-adjusting binary search tree with the additional property that recently accessed elements are quick to access again.

Simplex algorithm

An algorithm for solving linear programming problems, it is based on the idea of repeatedly selecting the most favorable vertex of the current polytope and moving to it.

K-means algorithm

An unsupervised learning algorithm that is used to classify a given set of n samples into k clusters, it aims to partition n observations into k clusters in which each observation belongs to the cluster with the nearest mean.

K-nearest neighbors algorithm

A non-parametric method used for classification and regression, it's a type of instance-based learning, or lazy learning where the function is only approximated locally and all computation is deferred until classification.

Eigenvalue algorithm

An algorithm for finding the eigenvalues and eigenvectors of a matrix, it is an important tool in linear algebra and its applications in physics, engineering and computer science.

Convolutional Neural Network (CNN)

A type of feed-forward artificial neural network in which the connectivity pattern between its neurons is inspired by the organization of the animal visual cortex.

Recurrent Neural Network (RNN)

A class of artificial neural networks that allows to process sequential data, it has the ability to process an input sequence and maintain an internal state capturing information about the past elements in the sequence.

Long Short-Term Memory (LSTM)

A type of recurrent neural network that is able to capture long-term dependencies in sequential data.

Generative Adversarial Networks (GANs)

A class of machine learning systems invented by Ian Goodfellow and his colleagues in 2014, it is designed to generate new, previously unseen examples from a given set of training data.

Simulated Annealing

A probabilistic technique for approximating the global optimum of a given function, it is often used for mathematical optimization and in computer science for the travelling salesman problem and other combinatorial optimization problems.

Particle Swarm Optimization (PSO)

A computational method that optimizes a problem by iteratively trying to improve a candidate solution with regard to a given measure of quality.

Ant Colony Optimization (ACO)

A probabilistic technique for solving computational problems which can be reduced to finding good paths through graphs.

Genetic Algorithm (GA)

A search heuristic that is inspired by the process of natural selection, it is used to generate useful solutions to optimization and search problems.

Simulated Evolution

A method of optimization that is based on the biological principle of natural selection and evolution, it is used to find the best solution to a problem in a large search space.

Memoization

A technique used in algorithm design for storing the results of expensive function calls and returning the cached result when the same inputs occur again.

Randomized Algorithm

An algorithm that uses a random number generator to make decisions or select options within the algorithm.

Expectation-Maximization algorithm

An iterative method to find maximum likelihood estimates of parameters in statistical models, where the model depends on unobserved latent variables.

Simplex method

An algorithm in linear programming for solving the linear programming problem, it solves the problem by moving from one vertex of the feasible set to an adjacent vertex that improves the value of the objective function.

Randomized quicksort

A variant of quicksort algorithm that chooses a random pivot element from the array to be sorted, this helps in avoiding worst-case scenarios and improves the average time complexity.

Random Forest

An ensemble learning method for classification, regression and other tasks, that operate by constructing a multitude of decision trees at training time and outputting the class that is the mode of the classes (classification) or mean prediction (regression) of the individual trees.

Gradient Descent

An optimization algorithm used to minimize some function by iteratively moving in the direction of steepest or most rapid decrease of the function. It is commonly used in training machine learning models.

Stochastic Gradient Descent (SGD)

A variant of Gradient Descent algorithm, it uses random samples from the dataset in each iteration to update the parameters of the model, this helps to escape local optima and improve the convergence.

Momentum

A method used to improve the performance of gradient descent, it adds a fraction of the update vector of the past time step to the current update vector.

Adam Optimization

A stochastic gradient optimization method, it combines the advantages of Root Mean Square Propagation (RMSProp) and Adaptive Gradient Algorithm (AdaGrad) and it is often used to optimize deep learning models.

PageRank

A link analysis algorithm, it assigns a numerical weighting to each element of a hyperlinked set of documents, such as the World Wide Web, with the purpose of 'measuring' its relative importance within the set.

Bidirectional Search

A graph search algorithm that finds the shortest path between an initial vertex and a goal vertex in a directed graph, it runs two simultaneous searches: one forward from the initial vertex and one backward from the goal vertex, stopping when the searches meet in the middle.

Artificial Bee Colony (ABC)

An optimization algorithm that is inspired by the intelligent foraging behaviour of honey bee colonies, it is used to solve optimization problems in a wide range of fields.

© All rights reserved — cs.fyi