The Open Source Swiss Army Knife

/programmingToolBox/algorithms/
/programmingToolBox/algorithms/ + sub-categories
http://www.sirfsup.com/
web directory content
    
      

Not logged in
Chat Register Login
return to:  http:/www.sirfsup.com      /programmingToolBox   /algorithms 
sub-categories and articles

                                                  
diralgorithms_c most algorithms coded in c HERE
diralgorithms_cPP avl heap sorts unions
diralgorithms_java add
dirapproaches dynamic programming, divide andconquer, decrease and conquer etc.
dirassignments add
dirfuzzy add
   --->create new sub-category


correctness.txt
steps to mathematically show that an algorithm is correct

ONE === guess the loop invariant for: // mult: inputs X and Y both > 0

hashing.txt
add

How can we analyze the performance of open addressing? Clearly as we increase the number of data items N, more and more items will be crammed into the table, potentially slowing everything down. Equally clearly, increasing the table size T allows you to hold more data in an efficient manner. It turns out that the ratio lambda = N/T is the important quantity to analyze. This is called the “load factor”. For open addressing, the load factor has to be greater than 0, but less than 1.

incremental_lcs.txt
add

lcs is longest common subsequence algorithm lcs algorithm in c brute-force approach /* input: array a of x*/

longest_common_subsequence.txt
add

longest_common_subsequence

  1. introduction
  2. brute-force
  3. recursive-solutionC the C matrix
  4. recursive-solutionM the M matrix
  5. recursive-solutionC the C matrix

minimum.c
add

int

notations.txt
what is omega notation? theta notation? big-O?

asymptotic ALGORITHMIC run-time classes ======================================= the important algorithmic analyses is the asymptotic one *O notation*

overview.txt
START HERE START HERE MAIN INDEX PAGE START HERE

algorithms notes overview

  1. definitions
  2. data structures
  3. recursion
  4. strategies for solving programming puzzles (dynamic programming, divide and conquer ... )
  5. counting true cost

permutations.txt
add

from probablity class, we know that for a set of n distinct objects, there are n! permutations. example: 4! = 4 * 3 * 2 * 1 = 24 different combinations if we want an algorithms which does *lexicographic ordering* the first letter/number is greater than (the previous choice for that slot) and less than (the next choice for that slot). Once the first slot is filled like that, do permutations of the rest of numbers in the set. This will lead to (in the example of n! it will lead to 4 groups of 6 permutations each; the groups will start with 1 the second group will start with 2, the third with 3 and the fourth with 4. An analysis of the above is like the statistics problems where they state that you don't put the choice back into the set once it's taken out, and here, we take out the first entry; that leaves us with 3*2*1 combinations of the remaining entries, hence it's 4 * 6 (the six is (once again) the number of permutations in each of the four sets.

profiling.txt
add

GENERAL ======= profiling: a technique which shows where the bottlenecks are option y axis #1: the time

recursives.txt
add

recursive and non-recursive distinction ======================================= non-recursive algorithms use summations to find the equation, then solve the equation and use the asymptomatic notations. Not all algorithms lead themselves to recursive solutions! "as we shall see throughout this book, a great many algorithms are based on the principle of recursively decomposing a large problem into recursively smaller ones...." Those are the "recursive relations" which need to be mathematically analyzed to determine the general or precise solution to categorizing the runtime of the algorithm. Remember, the general method of algorithmic analysis is to write the algorithm in pseudo-code (before actualization of it in a living language) and then sum up the important time considerations (number of comparisons, number of swaps...), then to mathematically solve the resulting equation. Some of these algorithms are reductive. there are a few ways to solve recurrences, meaning, "solve" means "what is the asymptotic run-time class of this algorithm?". For example: solve by the method of forward substitutions, the method of backward substitutions (very often works :), and finally, by using the master theorem, and finally solving via induction.

transformations.txt
add

algorithms notes overview

  1. definitions
  2. data structures
  3. recursion
  4. strategies for solving programming puzzles (dynamic programming, divide and conquer ... )
  5. counting true cost
   --->upload your article


User submitted category site links


(None)

-->submit a page from your site dealing with algorithms to the sirfsup! web directory for listing

return to top