127 private links
This is not a new sorting algorithm, but an idea when we need to avoid swapping of large objects or need to access elements of a large array in both original and sorted orders.
A common sorting task is to sort elements of an array using a sorting algorithm like Quick Sort, Bubble Sort.. etc, but there may be times when we need to keep the actual array in tact and use a “tagged” array to store the correct positioning of the array when it is sorted. When we want to access elements in sorted way, we can use this “tagged” array.
Algorithms are everywhere and some have been around for thousands of years. These 15 are some of the most influential or important ones used in science, math, physics, and computing.
Summary
- Babylonian Algorithms Are the Oldest Ever Found
- Euclid's Algorithm is Still in Use Today
- The 'Sieve of Eratosthenes' is an Ancient, Simple Algorithm
- Boolean (Binary) Algebra Was The Foundation For The Information Age
- Ada Lovelace's Algorithm Was the First Computer Program
- Fast Fourier Transform Breaks Down Signals Into Frequencies
- Google's Ranking Algorithm (PageRank) Could Be the Most Widely Used Algorithm
- Monte Carlo Method (Metropolis Algorithm) Was Used at Los Alamos
- The Simplex Method for Linear Programming was Widely Adopted by Industry
- Krylov Subspace Iteration Methods Are Still Used Today - the deceptively simple task of solving equations of the form Ax = b.
- Kalman Filter is Great For Predicting the Future, sort of
- QR Algorithms For Computing Eigenvalues Have Proved Incredibly Useful
- The Fortran Optimizing Compiler Could Be The Most Important Event in Programming History
- Quicksort Is Great at Helping Sort Things
- JPEG and Other Data Compression Algorithms Are Incredibly Useful
Purpose of this Collection
This collection is a presentation of fairly small Python programs. They are aimed at intermediate programmers; people who have studied Python and are fairly comfortable with basic recursion and object oriented techniques. Most programs are very short, not more than a couple of pages and all projects are accompanied with a write-up.
I have found Python to be an excellent language to express algorithms clearly. Some of the ideas here originated in other programs in other languages. But in most cases I developed code from scratch from just an outline of an idea. But one, Lisp in Python was almost a translation exercise from John McCarthy's original Evalquote in Lisp.
From many years of programming these are some of my favorite programs. I hope you enjoy them as much as I do. I look forward to hearing from readers, especially those with suggestions for improvements, ideas for new projects, or people who are doing similar things. You can email me at mailme.html
Many thanks to Paul Carduner and Jeff Elkner for their work on this page, especially for Paul's graphic of Psyltherin (apologies to Harry Potter) and to the teams behind reStructured text and Sphinx to which the web pages in this collection have been adapted.
Introduction to sparse matrices.
A sparse matrix is just a matrix that is mostly zero. Typically, when people talk about sparse matrices in numerical computations, they mean matrices that are mostly zero.
You can find a PDF version of this blog post here . A weighted graph is a data structure consisting of some vertices and edges, and each...
Based on marisa-trie C++ library.
This is a Python wrapper for TA-LIB based on Cython instead of SWIG. From the homepage:
TA-Lib is widely used by trading software developers requiring to perform technical analysis of financial market data.
Includes 150+ indicators such as ADX, MACD, RSI, Stochastic, Bollinger Bands, etc.
Candlestick pattern recognition
Open-source API for C/C++, Java, Perl, Python and 100% Managed .NET
Keltner Channel uses, calculations, and strategies for day traders, including how to trade trends and breakouts.
100 days, 100 algorithms - a challenge consisting of many small pieces.
We shall introduce PyDelaunay as a practical spatial construction. It is an efficient Python implementation of Voronoi/Delaunay Tessellation, which can be served as the Basic Map of the neighbourhood concept.
Resource for the implementation of the automatic configuration and communication protocol for the Lumentile project.
Roll your own autocomplete solution using Tries. You might have come across many websites with autocomplete suggestions, most notably Google. Adding such an option to your site or application might...
This book presents a unified treatment of many different kinds of planning algorithms. The subject lies at the crossroads between robotics, control theory, artificial intelligence, algorithms, and computer graphics. The particular subjects covered include motion planning, discrete planning, planning under uncertainty, sensor-based planning, visibility, decision-theoretic planning, game theory, information spaces, reinforcement learning, nonlinear systems, trajectory planning, nonholonomic planning, and kinodynamic planning.
A cellular automaton (pl. cellular automata, abbrev. CA) is a discrete model studied in computability theory, mathematics, physics, complexity science, theoretical biology and microstructure modeling. Cellular automata are also called cellular spaces, tessellation automata, homogeneous structures, cellular structures, tessellation structures, and iterative arrays.