Encryption Algorithms
 Advanced Encryption Standard (AES), Digital Signature Standard (DSS) [includes description of Digital Signature Algorithm (DSA)], Secure Hash Standard (SHS)  National Institute of Standards and Technology's official descriptions of the named algorithms among others.
 Bruce Schneier's Cryptography Page  Has descriptions of numerous encryption algorithms including Blowfish, Twofish, Solitaire, Helix, Phelix, Yarrow, Threefish, Skein and more. Offers source code for a variety of platforms.
 KremlinEncrypt  Cryptography site provides an overview of cryptography algorithms and links to published descriptions where available.
 PowerBASIC Crypto Archives  Offers PowerBASIC source code for many algorithms including:
 Hashing  RIPEMD160, MD5, SHA1, SHA256, CRC16, CRC32, Adler32, FNV32, ELF32
 Encryption  RSA64, DiffieHellmanMerkle Secure Key Exchange, Rijndael, Serpent, Twofish, CAST128, CAST256, Skipjack, TEA, RC4, PC1, GOST, Blowfish, Caesar Substitutional Shift, ROT13
 Encoding  Base64, MIME Base64, UUEncode, yEnc, Neuronal Network, URLEncode, URLDecode
 Compression  LZ78, LZSS, LZW, RLE, Huffman, Supertiny
 PsuedoRandom Number Generation (PRNG)  Mersenne Twister Number Generator, Cryptographic PRNG, MPRNG, MOAPRNG, L'Ecuyer LCG3 Composite PRNG, W32.SQLSlammer
Genetic Algorithms
 Artificial Life  Offers executable and source for ant food collection and the travelling salesman problems using genetic algorithms
 Genetic Ant Algorithm  Source code for a Java applet that implements the Genetic Ant Algorithm based upon the model given in Koza, Genetic Programming, MIT Press
 Introduction to
Genetic Algorithms  Introduces fundamentals, offers Java applet examples
 Jaga  Offers a free, open source API for implementing genetic algorithms (GA) and genetic programming (GP) applications in Java
GIS (Geographic Information Systems) Algorithms
Sorting Algorithms
 Andrew Kitchen's Sorting Algorithms  Describes parallel sorting algorithms:
 OddEven Transposition Sort has a worst case time of O(n), running on n processors. Its absolute speed up is O(log n), so its efficiency is O((log n)/n)
 Shear Sort has a worst case time of O(n^{½} log n), running on n processors. Its absolute speed up is O(n^{½}), so its efficiency is O(1/n^{½})
 Ariel Faigon's Library of Sorting Algorithms  C source code for a variety of sorting algorithms including Insertion Sort, Quick Sort, Shell Sort, Gamasort, Heap Sort and Sedgesort (Robert Sedgewick quicksort optimization)
 David Martin's Sorting Algorithms  Source code and simple animations showing how they work for several algorithms  Insertion · Selection · Bubble · Shell · Merge · Heap · Quick · Quick3
 Flash Sort  Describes the FlashSort algorithm which sorts n elements in O(n) time
 Michael Lamont's Sorting Algorithms  Describes common sorting algorithms:
 O(n²) Sorts  bubble, insertion, selection and shell sorts
 O(n log n) Sorts  heap, merge and quick sorts
 Sequential and Parallel Sorting Algorithms  Describes many sorting algorithms:
 Quicksort
 Heapsort
 Shellsort
 Mergesort
 Sorting Networks
 Bitonic Sort
 OddEven Mergesort
 LS3Sort
 4way Mergesort
 Rotate Sort
 3nSort
 s^2way Mergesort
Search Algorithms
Tree Algorithms
Computational Geometry Algorithms
 GeoLib  Downloadable Gnu GPL (free for noncommercial use) library of C++ computational geometry algorithms. Included in the library is a class representing a latitude and longitude position which provides conversion to Cartesian coordinates allowing Geospatial polygon representation.
 CGAL  Offers open source C++ library of computational geometry algorithms.
 FastGEO  Offers source code for a library of computational geometry algorithms such as geometrical primitives and predicates, hull construction, triangulation, clipping, rotations and projections using the Object Pascal language.
 Wykobi  FastGEO library ported to C++.
Phonetic Algorithms
Project Management Algorithms
Miscellaneous Algorithms
 AI Horizon  Has a variety of algorithms, from basic computer science data structures such as 23 trees to AIrelated algorithms such as minimax and a discussion of machine learning algorithms.
 CS Animated  Describes a variety of algorithms using narrated slideshow presentations (videos).
 Global Optimization Algorithms  Theory and Application  This is a free ebook (600+ page  12.6MB .PDF file) that focuses on evolutionary computation by discussing evolutionary algorithms, genetic algorithms, genetic programming, learning classifier systems, evolution strategy, differential evolution, particle swarm optimization, and ant colony optimization. It also elaborates on metaheuristics like simulated annealing, hill climbing, tabu search, and random optimization. It contains many pseudocode descriptions for the algorithms.
 Hash Algorithms  Overview and source code (in C, Pascal and Java) for many general purpose hashing algorithms.
 Porter Stemming Algorithm  Describes a process for removing the commoner morphological and inflexional endings from words in English. Its main use is as part of a term normalisation process that is usually done when setting up Information Retrieval systems.
 Rubik's Cube  Solves a Rubic's Cube using the BestFast search algorithm and profile tables.
 Simulated Annealing  The fundamental idea is to allow moves resulting in solutions of worse quality than the current solution (uphill moves) in order to escape from local minima. The probability of doing such a move is decreased during the search.
 The Stony Brook Algorithm Repository  Offers a collection of algorithm implementations for over seventy of the most fundamental problems in combinatorial algorithms:
 Data Structures  Dictionaries, Priority Queues, Suffix Trees and Arrays, Graph Data Structures, Set Data Structures, KdTrees
 Numerical Problems  Solving Linear Equations, Bandwidth Reduction, Matrix Multiplication, Determinants and Permanents, Linear Programming/Simplex Method, Random Number Generation, Factoring and Primality Testing, Arbitrary Precision Arithmetic, Knapsack Problem, Discrete Fourier Transform
 Combinatorial Problems  Sorting, Searching, Median and Selection, Permutations, Subsets, Partitions, Graphs, Calendrical Calculations, Job Scheduling, Satisfiability
 Graph Problems  Polynomial Time Problems (Connected Components, Topological Sorting, Minimum Spanning Tree, Shortest Path, Transitive Closure and Reduction, Matching, Eulerian Cycle / Chinese Postman, Edge and Vertex Connectivity, Network Flow, Drawing Graphs Nicely, Drawing Trees, Planarity Detection and Embedding)
 Graph Problems  Hard Problems (Clique, Independent Set, Vertex Cover, Traveling Salesman Problem, Hamiltonian Cycle, Graph Partition, Vertex Coloring, Edge Coloring, Graph Isomorphism, Steiner Tree, Feedback Edge/Vertex Set
 Computational Geometry  Robust Geometric Primitives, Convex Hull, Triangulation, Voronoi Diagrams, Nearest Neighbor Search, Range Search, Point Location, Intersection Detection, Bin Packing, MedialAxis Transformation, Polygon Partitioning, Simplifying Polygons, Shape Similarity, Motion Planning, Maintaining Line Arrangements, Minkowski Sum
 Set and String Problems  Set Cover, Set Packing, String Matching, Approximate String Matching, Text Compression, Cryptography, Finite State Machine Minimization, Longest Common Substring, Shortest Common Superstring
 Introduction to Neural Networks  Describes the Back Propagation algorithm for neural networks.
 NIST Dictionary of Algorithms and Data Structures  Some entries have links to implementations.

Banner advertising on this site is available. Inquire
