All Classes and Interfaces

Class
Description
BRANCH AND BOUND PROBLEM: THE PROBLEM OF ASSIGNING N TASK TO AGENTS
GREEDY ALGORITHM PROBLEM: THE PROBLEM OF ASSIGNING N TASK TO AGENTS This program can solve the problem using two greedy algorithms and test operation.
GREEDY ALGORITHM PROBLEM: THE PROBLEM OF ASSIGNING N TASK TO AGENTS This program serves to increase the size of the execution times of the problem and to check the quadratic behavior expected O(n^2)
GREEDY ALGORITHM PROBLEM: THE PROBLEM OF ASSIGNING N TASK TO AGENTS This program serves to randomly generate a matrix of costs (the size is introduced by the user).
BACKTRACKING PROBLEM: THE PROBLEM OF ASSIGNING N TASK TO AGENTS This program can solve the problem using a backtracking algorithm
Demonstrates ArrayDeque as both a queue (FIFO via add/poll) and a stack (LIFO via push/pop).
Demonstrates basic ArrayList operations: add, remove, and iteration.
Sorting algorithm: Bidirectional Bubble method
Sorting algorithm: Binary Insertion method
Binary Search implementation for finding an element in a sorted array.
Main class to solve problems using the Branch and Bound technique We need to extend it for any specific problem
Main class to solve problems using the Branch and Bound technique We need to extend it for any specific problem
Bubble Sort Algorithm - Educational Sorting Implementation.
Coin Change Problem — Dynamic Programming solution.
GREEDY ALGORITHM PROBLEM: THE PROBLEM OF THE CHANGE OF MONEY It has an optimal solution in some cases.
GREEDY ALGORITHM PROBLEM: THE HORSE JUMPING PROBLEM (Knight's tour) It has not an optimal solution in some cases
BACKTRACKING PROBLEM: THE HORSE JUMPING PROBLEM The program calculates all the ways of moving a horse through an entire chessboard of side n
BACKTRACKING PROBLEM: THE HORSE JUMPING PROBLEM This program calculates all the ways of moving a horse through an entire chessboard of side n
GREEDY ALGORITHM PROBLEM: THE HORSE JUMPING PROBLEM (Knight's tour) It has not an optimal solution in some cases
BACKTRACKING PROBLEM: THE PROBLEM OF THE N QUEENS This program calculates one way of placing n queens on a chessboard of side n
BACKTRACKING PROBLEM: THE PROBLEM OF THE N QUEENS This program calculates one way of placing n queens on a chessboard of side n
DYNAMIC PROGRAMMING PROBLEM: MATHEMATICAL COMBINATIONS n x k The recursive algorithm that calculates Combinations has exponential complexity and repeats calculations already performed.
Sorting algorithm: Direct insertion method
Sorting algorithm: Direct selection method
BRANCH AND BOUND PROBLEM: THE PUZZLE
DIVIDE AND CONQUER PROBLEM: CALCULATE THE FACTORIAL OF A NUMBER
To calculate the factorial of a number
Fibonacci Number Calculation using Divide and Conquer and Iterative Approaches.
DYNAMIC PROGRAMMING: CALCULATE THE FIBONACCI NUMBER OF ORDER n Fibonacci Series = 0,1,1,2,3,5,8,13,21,34,55,89,... e.g. the 0 is when n=0 and the 89 is when n=11
To solve the classical Fibonacci algorithm using a recursive and inefficient algorithm
To calculate the Fibonacci of a number n
GREEDY ALGORITHM PROBLEM: MAXIMIZE THE NUMBER OF FILES ON A DISK It has an optimal solution.
GREEDY ALGORITHM PROBLEM: MINIMIZE THE FREE SPACE ON A DISK WITH FILES It has NOT an optimal solution in some cases.
GREATEST COMMON DIVISORS: Calculate the GCG of two positive integers
To get the addition of a list of numbers
To get the maximum of a list of numbers
Demonstrates HashSet operations: add, remove, and contains.
To save and sort the nodes that are going to be used
Sorting algorithm: Heapsort method
To save and sort the nodes that are going to be used
Just to show a small example of how the project is structured
Sorting algorithm: Bubble method with sentinel
Interface for sorting algorithms
GREEDY ALGORITHM PROBLEM: THE KNAPSACK PROBLEM (BREAKABLE) it has an optimal solution
0/1 Knapsack Problem - Dynamic Programming Solution.
GREEDY ALGORITHM PROBLEM: THE KNAPSACK PROBLEM (0/1).
Demonstrates LinkedHashSet operations.
Demonstrates LinkedList as a doubly-linked list with operations at both ends: addFirst, addLast, removeFirst, and removeLast.
//DIVIDE AND CONQUER PROBLEM: IS THERE A MAJORITARIAN ELEMENT IN n ELEMENTS?
Computes the max pairwise product among different numbers E.g.: 7 3 6 => 42 However, in this example we will only work with two integer numbers
Computes the max pairwise product among different numbers E.g.: 7 3 6 => 42 However, in this example we will only work with two long numbers
Computes the max pairwise product among different numbers E.g.: 7 3 6 => 42 We will load the numbers from MaxPairWiseProductRandomNumbers.txt
Computes the max pairwise product among different numbers E.g.: 7 3 6 => 42 We will load the numbers from MaxPairWiseProductRandomNumbers.txt
Computes the max pairwise product among different numbers E.g.: 7 3 6 => 42 We will load the numbers from MaxPairWiseProductRandomNumbers.txt
Computes the max pairwise product among different numbers E.g.: 7 3 6 => 42 We will load the numbers from MaxPairWiseProductRandomNumbers.txt
Generates a test data file of random integers for the MaxPairWiseProduct problem.
DIVIDE AND CONQUER PROBLEM: MAXIMUM SUMMATION OF ALL THE SUBSEQUENCES OF n ELEMENTS
//DIVIDE AND CONQUER PROBLEM: THE MEDIAN OF n ELEMENTS
Mergesort algorithm using divide-and-conquer.
//DIVIDE AND CONQUER PROBLEM: MODE OF n ELEMENTS
To represent the different states of a problem in the graph For each problem, we should extend this class with specific information We also need to compare Nodes because it is the way to compare them in the priority queue
BACKTRACKING PROBLEM: PERMUTATIONS OF N ELEMENTS This program generates permutations of the integer elements that are in the vector v
BACKTRACKING PROBLEM: PERMUTATIONS OF N ELEMENTS This program calculates times to generate the permutations of n elements.
Single-plumber scheduling utility.
Demonstrates PriorityQueue with natural ordering.
Quicksort sorting algorithm.
Sorting algorithm: Radix method
BRANCH AND BOUND PROBLEM: OPTIMAL PLACEMENT OF RECTANGLES
BRANCH AND BOUND PROBLEM: OPTIMAL PLACEMENT OF RECTANGLES
To calculate the cube root of the values of an array
To calculate the square of the values of an array
To calculate the addition of the values of an array
DYNAMIC PROGRAMMING PROBLEM: CHEAPER TRAVEL ON THE RIVER It consists on finding the minimum cost for each pair of points
To use different methods for searching numbers in an array
DIVIDE AND CONQUER PROBLEM: CALCULATE THE POSITION OF AN ELEMENT x IN A VECTOR (SORTED OR UNSORTED) OF n DIFFERENT ELEMENTS
Sorting algorithm: Shellsort method
GREEDY ALGORITHM PROBLEM: SOME DILIGENT PLUMBERS It has an optimal solution
Demonstrates the legacy Stack class (LIFO) with push and pop operations.
BACKTRACKING PROBLEM: SUBSETS OF A GIVEN SUM This program, given a set consisting of n different positive integers, computes all subsets which sum a given value c
Demonstrates TreeSet with natural sorted ordering.
Utility class for divide-and-conquer sorting helpers.
Helper class to trace and use common operations among sorting algorithms
Demonstrates the legacy thread-safe Vector collection.
DIVIDE AND CONQUER PROBLEM: CALCULATE THE SUM OF n ELEMENTS IN A VECTOR
Worker thread for the parallel Branch and Bound search.