Update alg
This commit is contained in:
parent
31d4d1b982
commit
4670a22756
1 changed files with 53 additions and 0 deletions
53
algorithm.md
53
algorithm.md
|
@ -115,8 +115,61 @@ int main(void)
|
|||
|
||||
## Study of Algorithms
|
||||
|
||||
As algorithms are at the heart of [computer science](scompsci.md), there's a lot of rich theory and knowledge about them.
|
||||
|
||||
From theoretical computer science we know not all problems are [computable](computability.md), i.e. there are problems unsolvable by any algorithm (e.g. the [halting problem](halting_problem.md)). [Computational complexity](computational_complexity.md) is a theoretical study of resource consumption by algorithms, i.e. how fast and memory efficient algorithms are. [Formal verification](formal_verification.md) is a field that tries to mathematically prove correctness of algorithms (this is needed for critical software, e.g. in planes). [Genetic programming](generic_programming.md) and some other methods of [artificial intelligence](ai.md) try to automatically create algorithms (creating algorithms that create algorithms). [Computer language](computer_language.md) design is an art of finding best ways of expressing algorithms.
|
||||
|
||||
TODO: sorting, searching, classical algorithms (primes, haugh transform, FFT, ...), time/space complexity, genetic programming, design patterns, fizzbuzz
|
||||
|
||||
## Specific Algorithms
|
||||
|
||||
Following are some common algorithms classified into groups.
|
||||
|
||||
- [graphics](graphics.md)
|
||||
- [DDA](dda.md): line drawing algorithm
|
||||
- [flood fill](flood_fille.md)
|
||||
- [FXAA](fxaa.md)
|
||||
- [Hough transform](hough_transform.md): finds shapes in pictures
|
||||
- [painter's algorithm](painters_algorithm.md)
|
||||
- [path tracing](path_tracing.md)
|
||||
- [ray tracing](ray_tracing.md)
|
||||
- [math](math.md)
|
||||
- [Boot'h algorithm]: algorithm for multiplication
|
||||
- [Dijkstra's algorithm](dijkstras_algorithm.md)
|
||||
- [Euclidean algorithm](euclidean_algorithm.md): computes greatest common divisor
|
||||
- [numerical algorithms](numerical.md): approximate mathematical functions
|
||||
- [sieve of Eratosthenes](sieve_of_eratosthenes.md): computes [prime numbers](prime.md)
|
||||
- [sorting](sorting.md)
|
||||
- [bogosort](bogosort.md) (stupid sort)
|
||||
- [bubble sort](bubble_sort.md): simple, kind of slow but still usable sorting algorithm
|
||||
- [heap sort](heap_sort.md)
|
||||
- [insertion sort](insertion_sort.md)
|
||||
- [merge sort](merge_sort.md)
|
||||
- [shaker sort](shaker_sort.md)
|
||||
- [selection sort](selection_sort.md)
|
||||
- [slow sort](slow_sort.md)
|
||||
- [quick sort](quick_sort.md): one of the fastest sorting algorithms
|
||||
- [searching](searching.md)
|
||||
- [binary search](binary_search.md)
|
||||
- [linear search](linear_search.md)
|
||||
- [other](other.md)
|
||||
- [A*](a_start.md): path searching algorithm, used by [AI](ai.md) in many [games](game.md)
|
||||
- [backpropagation](backpropagation.md)
|
||||
- [fizzbugg](fizzbugg.md): problem/simple algorithm given in job interviews to filter out complete [noobs](noob.md)
|
||||
- [FFT](fft.md): quickly converts signal (audio, image, ...) to its representation in frequencies, one of the most famous and important algorithms
|
||||
- [Huffman coding](huffman_code.md): [compression](compression.md) algorithm
|
||||
- [Kalman filter](kalman_filter.md)
|
||||
- [k-means](k_means.md): [clustering](clustering.md) algorithm
|
||||
- [MD5](md5.md): [hash](hash.md) function
|
||||
- [minimax](minimax.md) plus [alpha-beta pruning](alpha_beta.md): used by many [AI](ai.md)s that play turn based games
|
||||
- [proof of work](proof_of_work.md) algorithms: used by some [cryptocurrencies](crypto.md)
|
||||
- [RSA](rsa.md)
|
||||
- [Shor's algorithm](shors_algorithm.md): [quantum](quantum.md) factorization algorithm
|
||||
- [YouTube](youtube.md) algorithm: secret algorithm YouTube uses to suggest videos to viewers, a lot of people hate it :)
|
||||
|
||||
|
||||
## See Also
|
||||
|
||||
- [programming](programming.md)
|
||||
- [design pattern](design_pattern.md)
|
||||
- [recursion](recursion.md)
|
Loading…
Reference in a new issue