Using Branch and Bound to solve 0/1 Knapsack Problem

Using Branch and Bound to solve 0/1 Knapsack Problem

Sequence Alignment (Dynamic Programming)

Needleman-Wunsch to find optimal alignment of strings, in this case for genetic instructions (ACTG)

Finding strongly connected components of a graph (Kosaraju Algorithm)

Github Kosaraju’s algorithm Project 4 for Analysis of Algorithms This algorithm finds strongly connected components in a directed graph. A strongly connected component is a portion of a graph where you can get from any one node to any other node within that portion. The graph is stored like this in a txt file 1 4 2 8 3 6 4 7 And as problem 8.10 describes in https://www.algorithmsilluminated.org/ , the files describe the edges of a directed graph. Vertices are labeled as positive integers from 1 to 875714. Each row indicates one edge of the graph (the tail and head vertices, in that order). For example, the eleventh row (“2 13019”) indicates that there is an edge directed from vertex 2 to vertex 13019. What are the sizes of the biggest five strongly connected components? ...

Choosing Pivots in Quicksort

Comparing how many comparisons are required in quicksort for various pivot selection methods.

Karatsuba Algorithm

Karatsuba Algorithm

Multiply numbers in less than O(n^2) time.

Program Demo Thumbnail

Multi-Threaded Java Program to compute 1000 digits of Pi

Multi-threaded program that computes the first 1000 digits of Pi. Utilizes all system CPU cores simultaneously, using a task-based scheme to distribute the work.