Algorithm Study provides tools and resources to augment the traditional study of algorithms. It includes implementations of common and less-common algorithms in a variety of languages and visualization tools to help in gaining a deeper understanding of the algorithms. The algorithm implementations are each accompanied by a discussion of the asymptotic ("big O") run time and memory limits of the algorithm. Some implementations include discussion of how the algorithm or data structure is commonly used and comparisons with similar algorithms or data structures. All implementations have test cases that exercise their functionality. The visualization tool, Algorithm Visualizer, displays what happens as various algorithms do their work.
Validate Saudi ID is a PHP class that can be used to validate Saudi resident identifier numbers. It takes a resident identifier number and calculates a checksum to verify whether it may be a valid number. It returns either 1 (for Saudis), 2 (for non-Saudis), or FALSE (for invalid numbers).
JRainbow is a program that generates Rainbow tables for the MD5 and SHA-1 hash algorithms. These tables then can be used for a Rainbow attack to retrieve hashed passwords. Up to 8 digit password rainbow tables are supported. The tables use a textual format. Six variations of alphanumeric and special character sets are supported. You can choose how many times to hash the input before storing it in the table.
php mudnames is a PHP class that can generate random names for characters used in role playing games such as multi-user dungeon (MUD) games. Although the names do not mean anything, they sound very much like typical names of characters that you often see in this kind of game. It can retrieve text data from one of several dictionary files. The dictionary data is used to generate random names based on selected capabilities and used particles.
nedtries is a portable in-place bitwise binary Fredkin trie algorithm that allows for near constant time insertions, deletions, finds, closest fit finds, and iteration. It is approximately 50-100% faster than red-black trees and up to 20% faster than O(1) hash tables. It provides implementations as C macros, C++ templates, and as a C++ STL compatible associative container.
Zebra_MPTT is a PHP class that provides an implementation of the modified preorder tree traversal algorithm. It provides methods for adding nodes anywhere in the tree, deleting nodes, moving and copying nodes around the tree, and for retrieving information about the nodes. It uses table locks to ensure that database integrity is always preserved and that concurrent MySQL sessions don’t compromise data integrity. A caching mechanism ensures that regardless of the type or the number of retrieval operations, the database is read only once per script execution.