Skip navigation links
A B C D E F G H I K L M N O P Q R S T V W 

A

ARRAY_IS_EMPTY - Static variable in interface com.sl.algorithms.core.interfaces.base.Constants
 
ArrayOps - Class in com.sl.algorithms.core.utils
 
atoi(String) - Static method in class com.sl.algorithms.core.utils.StringOps

Convert a given string to integer.

1.
AuxSpaceDupFinder - Class in com.sl.algorithms.search.pigeonhole
 
AuxSpaceDupFinder() - Constructor for class com.sl.algorithms.search.pigeonhole.AuxSpaceDupFinder
 

B

BaseInterface<T extends java.lang.Comparable> - Interface in com.sl.algorithms.core.interfaces.base
 
BentleyRotationByShuffling<T extends java.lang.Comparable> - Class in com.sl.algorithms.core.array.rotation

Problem: Rotate linear of size 'n' by 'kMax' positions, leftwards (counter-clockwise).

Reference

Jon Bentley
BentleyRotationByShuffling() - Constructor for class com.sl.algorithms.core.array.rotation.BentleyRotationByShuffling
 
BottomUpMergeSort<T extends java.lang.Comparable> - Class in com.sl.algorithms.sort.generalpurpose.merge
BottomUpMergeSort treats the input array as a cluster of sub-lists and iteratively merges them back and forth b/n 2 buffers to produce a sorted list.
BottomUpMergeSort() - Constructor for class com.sl.algorithms.sort.generalpurpose.merge.BottomUpMergeSort
 
BoyerMooreVoting<T extends java.lang.Comparable> - Class in com.sl.algorithms.search.majorityelement
BoyerMooreVoting() - Constructor for class com.sl.algorithms.search.majorityelement.BoyerMooreVoting
 
BruteForceMedianFinder<T extends java.lang.Comparable> - Class in com.sl.algorithms.search.median

Brute-force solution, for reference only.

Time : O(N logN)
Space: O(N)
BruteForceMedianFinder() - Constructor for class com.sl.algorithms.search.median.BruteForceMedianFinder
 
BruteForceRotation<T extends java.lang.Comparable> - Class in com.sl.algorithms.core.array.rotation

Problem: Rotate array of size 'n' by 'kMax' positions.

Reference
BruteForceRotation() - Constructor for class com.sl.algorithms.core.array.rotation.BruteForceRotation
 
BruteForceRotationWithSpace<T extends java.lang.Comparable> - Class in com.sl.algorithms.core.array.rotation

Problem Reference: Rotate array of size 'n' by 'kMax' positions.
BruteForceRotationWithSpace() - Constructor for class com.sl.algorithms.core.array.rotation.BruteForceRotationWithSpace
 
BubbleSort<T extends java.lang.Comparable> - Class in com.sl.algorithms.sort.generalpurpose.smalldata

Quadratic complexity sort algorithm, with very limited practical use.
BubbleSort() - Constructor for class com.sl.algorithms.sort.generalpurpose.smalldata.BubbleSort
 
bucketIndex(T, int) - Method in class com.sl.algorithms.sort.finitegroups.bucketsort.BucketSort
 
bucketIndex(T, int) - Method in class com.sl.algorithms.sort.finitegroups.bucketsort.FPBucketSort
 
BucketSort<T extends java.lang.Comparable> - Class in com.sl.algorithms.sort.finitegroups.bucketsort
A sort algorithm (non-stable, out-of-place) that uses O(n) space and provides O(n) best-case and O(n^2) average/worst-case time-complexity.
BucketSort() - Constructor for class com.sl.algorithms.sort.finitegroups.bucketsort.BucketSort
 

C

CharSymmetryChecker - Interface in com.sl.algorithms.core.interfaces.strings.checks
 
checkArray(T[]) - Method in interface com.sl.algorithms.core.interfaces.base.BaseInterface
 
checkIntArray(int[]) - Method in interface com.sl.algorithms.core.interfaces.base.BaseInterface
 
checkList(ListNode<T>) - Method in interface com.sl.algorithms.core.interfaces.base.BaseInterface
 
clone() - Method in class com.sl.algorithms.core.list.ListNode
Deep Copy.
Codec - Class in com.sl.algorithms.core.strings.codec
Codec() - Constructor for class com.sl.algorithms.core.strings.codec.Codec
 
com.sl.algorithms.core.array.count - package com.sl.algorithms.core.array.count
 
com.sl.algorithms.core.array.rotation - package com.sl.algorithms.core.array.rotation
 
com.sl.algorithms.core.array.subarray - package com.sl.algorithms.core.array.subarray

Reference

// O(n) time and O(1) space algorithm-set to find max w/n a series of numbers.
com.sl.algorithms.core.interfaces.base - package com.sl.algorithms.core.interfaces.base
 
com.sl.algorithms.core.interfaces.count - package com.sl.algorithms.core.interfaces.count
 
com.sl.algorithms.core.interfaces.merge - package com.sl.algorithms.core.interfaces.merge
 
com.sl.algorithms.core.interfaces.rotate - package com.sl.algorithms.core.interfaces.rotate
 
com.sl.algorithms.core.interfaces.search - package com.sl.algorithms.core.interfaces.search
 
com.sl.algorithms.core.interfaces.search.pigeonhole - package com.sl.algorithms.core.interfaces.search.pigeonhole
 
com.sl.algorithms.core.interfaces.select - package com.sl.algorithms.core.interfaces.select
com.sl.algorithms.core.interfaces.shuffle - package com.sl.algorithms.core.interfaces.shuffle
 
com.sl.algorithms.core.interfaces.sort - package com.sl.algorithms.core.interfaces.sort
com.sl.algorithms.core.interfaces.strings.checks - package com.sl.algorithms.core.interfaces.strings.checks
 
com.sl.algorithms.core.interfaces.strings.codec - package com.sl.algorithms.core.interfaces.strings.codec
 
com.sl.algorithms.core.interfaces.subarray - package com.sl.algorithms.core.interfaces.subarray
 
com.sl.algorithms.core.list - package com.sl.algorithms.core.list
 
com.sl.algorithms.core.list.intersection - package com.sl.algorithms.core.list.intersection
 
com.sl.algorithms.core.list.merge - package com.sl.algorithms.core.list.merge
 
com.sl.algorithms.core.list.rotation - package com.sl.algorithms.core.list.rotation
 
com.sl.algorithms.core.stack - package com.sl.algorithms.core.stack
 
com.sl.algorithms.core.strings.checks - package com.sl.algorithms.core.strings.checks
 
com.sl.algorithms.core.strings.checks.parenthesis - package com.sl.algorithms.core.strings.checks.parenthesis
 
com.sl.algorithms.core.strings.codec - package com.sl.algorithms.core.strings.codec
 
com.sl.algorithms.core.tree - package com.sl.algorithms.core.tree
 
com.sl.algorithms.core.tree.lca - package com.sl.algorithms.core.tree.lca
 
com.sl.algorithms.core.utils - package com.sl.algorithms.core.utils
 
com.sl.algorithms.search.binarysearch - package com.sl.algorithms.search.binarysearch
 
com.sl.algorithms.search.linearsearch - package com.sl.algorithms.search.linearsearch
 
com.sl.algorithms.search.majorityelement - package com.sl.algorithms.search.majorityelement
 
com.sl.algorithms.search.median - package com.sl.algorithms.search.median
 
com.sl.algorithms.search.nge - package com.sl.algorithms.search.nge
 
com.sl.algorithms.search.peakelement - package com.sl.algorithms.search.peakelement
 
com.sl.algorithms.search.pigeonhole - package com.sl.algorithms.search.pigeonhole

If 'n' items are put into 'm' containers (m is less than n), then at least one container must contain more than 1 item.

For example, there must be at least two left gloves or two right gloves in a group of three gloves.

Reference 1
Reference 2
com.sl.algorithms.shuffle - package com.sl.algorithms.shuffle
Computers, being completely deterministic machines, are particularly bad at behaving randomly.
com.sl.algorithms.sort.advanced.wave - package com.sl.algorithms.sort.advanced.wave
 
com.sl.algorithms.sort.finitegroups - package com.sl.algorithms.sort.finitegroups
 
com.sl.algorithms.sort.finitegroups.bucketsort - package com.sl.algorithms.sort.finitegroups.bucketsort
 
com.sl.algorithms.sort.finitegroups.integersorting - package com.sl.algorithms.sort.finitegroups.integersorting
com.sl.algorithms.sort.generalpurpose - package com.sl.algorithms.sort.generalpurpose
 
com.sl.algorithms.sort.generalpurpose.heap - package com.sl.algorithms.sort.generalpurpose.heap
 
com.sl.algorithms.sort.generalpurpose.merge - package com.sl.algorithms.sort.generalpurpose.merge
 
com.sl.algorithms.sort.generalpurpose.smalldata - package com.sl.algorithms.sort.generalpurpose.smalldata
 
com.sl.sample.rest.service - package com.sl.sample.rest.service
 
com.sl.sample.rest.service.predicate - package com.sl.sample.rest.service.predicate
 
CommonParenthesisValidator - Class in com.sl.algorithms.core.strings.checks.parenthesis

Most common parenthesis validator e.g.
CommonParenthesisValidator() - Constructor for class com.sl.algorithms.core.strings.checks.parenthesis.CommonParenthesisValidator
 
compareTo(ListNode<T>) - Method in class com.sl.algorithms.core.list.ListNode
Compare only the current node i.e.
Constants - Interface in com.sl.algorithms.core.interfaces.base
 
ConstantSpaceDupFinder - Class in com.sl.algorithms.search.pigeonhole

Reference

Crux: Position of the node with multiple incoming pointers is the duplicate.

Assumption: There is at least one duplicate in the list.

Complexity: O(n) time, O(1) space
ConstantSpaceDupFinder() - Constructor for class com.sl.algorithms.search.pigeonhole.ConstantSpaceDupFinder
 
convertToArray(int) - Static method in class com.sl.algorithms.core.utils.NumberOps
 
convertToBinary(int) - Static method in class com.sl.algorithms.core.utils.NumberOps
 
convertToDecimal(int) - Static method in class com.sl.algorithms.core.utils.NumberOps
 
convertToDecimal(String) - Static method in class com.sl.algorithms.core.utils.NumberOps
 
convertToNumber(int[]) - Static method in class com.sl.algorithms.core.utils.NumberOps
 
convertToNumber(ListNode<Integer>) - Static method in class com.sl.algorithms.core.utils.NumberOps
 
convertToNumberUsingPower(int[]) - Static method in class com.sl.algorithms.core.utils.NumberOps
 
countDigits(int) - Static method in class com.sl.algorithms.core.utils.NumberOps
 
CountElementSortedList<T extends java.lang.Comparable> - Class in com.sl.algorithms.core.array.count
 
CountElementSortedList() - Constructor for class com.sl.algorithms.core.array.count.CountElementSortedList
 
CountingSort<T extends java.lang.Integer> - Class in com.sl.algorithms.sort.finitegroups.integersorting

A stable special-purpose integer-sort algorithm with linear time and space complexity = O(N+kMax), the range of legit values in the array i.e.
CountingSort() - Constructor for class com.sl.algorithms.sort.finitegroups.integersorting.CountingSort
 
countInLinearTime(T[], T) - Method in class com.sl.algorithms.core.array.count.CountElementSortedList
 
countInLinearTime(T[], T) - Method in interface com.sl.algorithms.core.interfaces.count.ElementCounter
 
countInLogTime(T[], T) - Method in class com.sl.algorithms.core.array.count.CountElementSortedList
 
countInLogTime(T[], T) - Method in interface com.sl.algorithms.core.interfaces.count.ElementCounter
 
countNegatives(int[][]) - Method in class com.sl.algorithms.core.array.count.CountNegativesInMatrix
 
countNegatives(int[][]) - Method in interface com.sl.algorithms.core.interfaces.count.NegativeCounter
 
CountNegativesInMatrix - Class in com.sl.algorithms.core.array.count
 
CountNegativesInMatrix() - Constructor for class com.sl.algorithms.core.array.count.CountNegativesInMatrix
 
countPrimes(int) - Static method in class com.sl.algorithms.core.utils.NumberOps

Sieve of Eratosthenes

Complexity: O(nlog(log(n))
createLinkedList(T[]) - Static method in class com.sl.algorithms.core.list.ListNode
 

D

data - Variable in class com.sl.algorithms.core.list.ListNode
Direct public access for this project only (as it's not a service/app).
data - Variable in class com.sl.algorithms.core.tree.TreeNode
Direct public access for this project only (as it's not a service/app).
DATA_TYPE_NOT_SUPPORTED_YET - Static variable in interface com.sl.algorithms.core.interfaces.base.Constants
 
DECIMAL_RADIX - Static variable in interface com.sl.algorithms.core.interfaces.base.Constants
decode(String) - Method in interface com.sl.algorithms.core.interfaces.strings.codec.Decoder
 
decode(String) - Method in class com.sl.algorithms.core.strings.codec.Codec
 
Decoder - Interface in com.sl.algorithms.core.interfaces.strings.codec
 
DELIMITER_COMMA - Static variable in interface com.sl.algorithms.core.interfaces.base.Constants
 
DougMcIlroyAlgorithm<T extends java.lang.Comparable> - Class in com.sl.algorithms.core.array.rotation

Left Rotation: Flip left hand, flip right hand, flip both hands

Right Rotation: Flip both hands, flip right hand, flip left hand

Doug McIlroy
DougMcIlroyAlgorithm() - Constructor for class com.sl.algorithms.core.array.rotation.DougMcIlroyAlgorithm
 
dummyNode() - Static method in class com.sl.algorithms.core.list.ListNode
 
DuplicateFinder - Interface in com.sl.algorithms.core.interfaces.search.pigeonhole
 
DutchNationalFlagSort<T extends java.lang.Comparable> - Class in com.sl.algorithms.sort.finitegroups

A customized quick-sort, this algorithm is specific for cases when the data could be divided into 2-3 finite groups.
DutchNationalFlagSort(T, T, T) - Constructor for class com.sl.algorithms.sort.finitegroups.DutchNationalFlagSort
DutchNationalFlagSort(T, T) - Constructor for class com.sl.algorithms.sort.finitegroups.DutchNationalFlagSort

(white) is the implicit middle layer;
i.e.

E

ELEMENT_NOT_FOUND - Static variable in interface com.sl.algorithms.core.interfaces.base.Constants
 
ElementCounter<T extends java.lang.Comparable> - Interface in com.sl.algorithms.core.interfaces.count
Given a sorted array, find the count of a given target element.
Provide both Linear and Logarithmic time-complexity solutions.
ElementMover<T extends java.lang.Comparable> - Class in com.sl.algorithms.sort.finitegroups
encode(String) - Method in interface com.sl.algorithms.core.interfaces.strings.codec.Encoder
 
Encoder - Interface in com.sl.algorithms.core.interfaces.strings.codec
 
equals(Object) - Method in class com.sl.algorithms.core.list.ListNode
Deep Equality Assertion.
equals(Object) - Method in class com.sl.algorithms.core.utils.Pair
 
equals(Object) - Method in class com.sl.sample.rest.service.predicate.Monk
 

F

filterMonks(List<Monk>, Predicate<Monk>) - Static method in class com.sl.sample.rest.service.predicate.MonkPredicates
 
findDaysToWarmthBruteForce(int[]) - Static method in class com.sl.algorithms.search.nge.NGERegularArray
 
findDuplicate(int[]) - Method in interface com.sl.algorithms.core.interfaces.search.pigeonhole.DuplicateFinder

Problem Reference

Requirements:
1.
findDuplicate(int[]) - Method in class com.sl.algorithms.search.pigeonhole.AuxSpaceDupFinder

Problem Reference

Requirements:
1.
findDuplicate(int[]) - Method in class com.sl.algorithms.search.pigeonhole.ConstantSpaceDupFinder

Problem Reference

Requirements:
1.
findFirstMissingPositive(int[]) - Method in interface com.sl.algorithms.core.interfaces.search.pigeonhole.MissingNumberFinder

Reference Problem

Scope: Input: integers; Output: positive integer
findFirstMissingPositive(int[]) - Method in class com.sl.algorithms.search.pigeonhole.LinearTimeMNFinder

First Missing Positive

Approach (Reverse of Pigeonhole): you can 'n' balls, you put them into n+1 bins, one bin will remain empty.

Phase-1: "approximate" sort to ensure the elements are at their rightful index e.g.
findIndex(T[], T) - Method in interface com.sl.algorithms.core.interfaces.search.Search
 
findIndex(T[], T) - Method in class com.sl.algorithms.search.binarysearch.GenericBinarySearch
 
findIndex(T[], T) - Method in class com.sl.algorithms.search.binarysearch.IterativeBinarySearch

Since we reduce the search space by half each time, the complexity must be in the order of O(log(n)).

O(log(n)) time and O(1) space.
findIndex(T[], T) - Method in class com.sl.algorithms.search.binarysearch.RecursiveBinarySearch

Since we reduce the search space by half each time, the complexity must be in the order of O(log(n)).

O(log(n)) time and space.

Linear space complexity because of the implicit recursion stack.
findIndex(T[], T) - Method in class com.sl.algorithms.search.linearsearch.LinearSearch
 
findIndexIteratively(T[], T, int, int) - Method in class com.sl.algorithms.search.binarysearch.IterativeBinarySearch
 
findKthLargest(T[], int) - Method in interface com.sl.algorithms.core.interfaces.select.QuickSelect
 
findKthSmallest(T[], int) - Method in interface com.sl.algorithms.core.interfaces.select.QuickSelect

QuickSelect based default implementation for findKthSmallest problem.
findKthSmallest(T[], int) - Method in class com.sl.algorithms.search.median.BruteForceMedianFinder
 
findKthSmallest(T[], int) - Method in class com.sl.algorithms.search.median.PQMedianFinder
 
findLCA(TreeNode<T>, TreeNode<T>, TreeNode<T>) - Method in interface com.sl.algorithms.core.interfaces.search.LowestCommonAncestor
 
findLCA(TreeNode<T>, TreeNode<T>, TreeNode<T>) - Method in class com.sl.algorithms.core.tree.lca.LCAFinderIterative
 
findLCA(TreeNode<T>, TreeNode<T>, TreeNode<T>) - Method in class com.sl.algorithms.core.tree.lca.LCAFinderRecursive
 
findLCABST(TreeNode<T>, TreeNode<T>, TreeNode<T>) - Method in interface com.sl.algorithms.core.interfaces.search.LowestCommonAncestor
 
findLCABST(TreeNode<T>, TreeNode<T>, TreeNode<T>) - Method in class com.sl.algorithms.core.tree.lca.LCAFinderIterative
 
findLCABST(TreeNode<T>, TreeNode<T>, TreeNode<T>) - Method in class com.sl.algorithms.core.tree.lca.LCAFinderRecursive
 
findMajorityElement(T[]) - Method in interface com.sl.algorithms.core.interfaces.search.MajorityFinder
 
findMajorityElement(T[]) - Method in class com.sl.algorithms.search.majorityelement.BoyerMooreVoting
 
findMaximum(T[]) - Method in interface com.sl.algorithms.core.interfaces.select.MedianFinder
 
findMaxSubArrayProduct(int[]) - Method in class com.sl.algorithms.core.array.subarray.KadaneAlgorithm
 
findMaxSubArrayProduct(int[]) - Method in interface com.sl.algorithms.core.interfaces.subarray.SubArrayProduct
 
findMaxSubArraySum(int[]) - Method in class com.sl.algorithms.core.array.subarray.KadaneAlgorithm
 
findMaxSubArraySum(int[]) - Method in class com.sl.algorithms.core.array.subarray.MaxNonNeighboursCircularSum
 
findMaxSubArraySum(int[]) - Method in class com.sl.algorithms.core.array.subarray.MaxNonNeighboursSum
 
findMaxSubArraySum(int[]) - Method in class com.sl.algorithms.core.array.subarray.MaxSubSequenceSum
 
findMaxSubArraySum(int[]) - Method in interface com.sl.algorithms.core.interfaces.subarray.SubArraySum
 
findMedian(T[]) - Method in interface com.sl.algorithms.core.interfaces.select.MedianFinder
 
findMinimum(T[]) - Method in interface com.sl.algorithms.core.interfaces.select.MedianFinder
 
findMissingNumber(int[]) - Method in interface com.sl.algorithms.core.interfaces.search.pigeonhole.MissingNumberFinder

Reference Problem

Scope: Input: non-negative integers; Output: non-negative integer.
findMissingNumber(int[]) - Method in class com.sl.algorithms.search.pigeonhole.LinearTimeMNFinder

Complexity: O(n) time and O(1) space.

Assumption: no duplicates.

Approach: Because we know that 'nums' contains 'n' numbers and that it is missing exactly one number in the range [0..n-1], we can infer that 'n' definitely replaces the missing number in nums.

Therefore, if we initialize an integer to 'n' and XOR it with every index and value, we will be left with the missing number.
findNGE(int[]) - Method in interface com.sl.algorithms.core.interfaces.search.NextGreaterElement
 
findNGE(int[]) - Method in class com.sl.algorithms.search.nge.NarayanPanditPermutationAlgorithm
 
findNGE(int[]) - Method in class com.sl.algorithms.search.nge.NGECircularArray
 
findNGE(int[]) - Method in class com.sl.algorithms.search.nge.NGERegularArray
 
findNGNSameDigits10s(int) - Method in class com.sl.algorithms.search.nge.NarayanPanditPermutationAlgorithm
 
findPeakElement(T[]) - Method in interface com.sl.algorithms.core.interfaces.search.PeakElementFinder
 
findPeakElement(T[]) - Method in class com.sl.algorithms.search.peakelement.LinearTimePEFinder
findPeakElement(T[]) - Method in class com.sl.algorithms.search.peakelement.LogTimePEFinder
findPermutations(String) - Static method in class com.sl.algorithms.core.utils.StringOps

Print all case-sensitive permutations of a string, without changing the positions of any characters.

Problem Reference
findStartOfAscent(T[]) - Method in class com.sl.algorithms.search.binarysearch.GenericBinarySearch
 
FisherYatesKnuthShuffle<T extends java.lang.Comparable> - Class in com.sl.algorithms.shuffle
The Fisher-Yates algorithm (presented by Knuth in TAOCP) is both the canonical shuffling algorithm and asymptotically optimal (linear).
FisherYatesKnuthShuffle() - Constructor for class com.sl.algorithms.shuffle.FisherYatesKnuthShuffle
 
Formulas - Class in com.sl.algorithms.core.utils
 
FPBucketSort<T extends java.lang.Double> - Class in com.sl.algorithms.sort.finitegroups.bucketsort
Requirement: Sort a list of floating-point numbers that are uniformly distributed over a range, in "linear time".
FPBucketSort() - Constructor for class com.sl.algorithms.sort.finitegroups.bucketsort.FPBucketSort
 

G

GenericBinarySearch<T extends java.lang.Comparable> - Class in com.sl.algorithms.search.binarysearch
GenericBinarySearch() - Constructor for class com.sl.algorithms.search.binarysearch.GenericBinarySearch
 
getAge() - Method in class com.sl.sample.rest.service.predicate.Monk
 
getExpr() - Method in enum com.sl.algorithms.core.interfaces.strings.checks.ParenthesisValidator.ParenthesisEnum
 
getId() - Method in class com.sl.sample.rest.service.SampleRESTResource
 
getIntersection(List<T>, List<T>) - Method in interface com.sl.algorithms.core.interfaces.search.IntersectionFinder
 
getIntersection(List<T>, List<T>) - Method in class com.sl.algorithms.core.list.intersection.ListIntersection
 
getIntersectionPoint(ListNode<T>, ListNode<T>) - Method in interface com.sl.algorithms.core.interfaces.search.IntersectionFinder
 
getIntersectionPoint(ListNode<T>, ListNode<T>) - Method in class com.sl.algorithms.core.list.intersection.ListIntersection
 
getMin() - Method in class com.sl.algorithms.core.stack.MinStack
 
getName() - Method in class com.sl.sample.rest.service.SampleRESTResource
 
getRandomNumberInRange(int, int) - Method in interface com.sl.algorithms.core.interfaces.shuffle.ShufflingEngine
Generate a random number between min and max (both inclusive).
GriesMillsRotation<T extends java.lang.Comparable> - Class in com.sl.algorithms.core.array.rotation
GriesMillsRotation() - Constructor for class com.sl.algorithms.core.array.rotation.GriesMillsRotation
 

H

hashCode() - Method in class com.sl.algorithms.core.list.ListNode
 
hashCode() - Method in class com.sl.algorithms.core.utils.Pair
 
hashCode() - Method in class com.sl.sample.rest.service.predicate.Monk
 
haveSameData(T[], T[]) - Static method in class com.sl.algorithms.core.utils.ArrayOps
 
haveSameData(List<T>, List<T>) - Static method in class com.sl.algorithms.core.utils.ArrayOps
 
haveSameDataBasedOnList(T[], T[]) - Static method in class com.sl.algorithms.core.utils.ArrayOps
 
haveSameDigitsAndLength(int, int) - Static method in class com.sl.algorithms.core.utils.Formulas
 
haveSameDigitsAndLengthPrimes(int, int) - Static method in class com.sl.algorithms.core.utils.Formulas
 
hcf(int, int) - Static method in class com.sl.algorithms.core.utils.Formulas
O(log(n)) solution, based on the works of Euclid and Aryabhatta.
HeapSort<T extends java.lang.Comparable> - Class in com.sl.algorithms.sort.generalpurpose.heap
An in-place non-stable sort algorithm with O(nlogn) time-complexity.
HeapSort(HeapType) - Constructor for class com.sl.algorithms.sort.generalpurpose.heap.HeapSort
 
HeapType - Enum in com.sl.algorithms.sort.generalpurpose.heap
 

I

incrementByOne(ListNode<Integer>) - Static method in class com.sl.algorithms.core.utils.LinkedListOps
 
insertData(ListNode<T>, T, OpPosition) - Static method in class com.sl.algorithms.core.utils.LinkedListOps
 
InsertionSort<T extends java.lang.Comparable> - Class in com.sl.algorithms.sort.generalpurpose.smalldata

In-place, stable and online quadratic-complexity sort algorithm useful for small data-set.

Approach: Given a list, take the current element and insert it at the appropriate position of the list, adjusting the list every time you insert.
InsertionSort() - Constructor for class com.sl.algorithms.sort.generalpurpose.smalldata.InsertionSort
 
IntersectionFinder<T extends java.lang.Comparable> - Interface in com.sl.algorithms.core.interfaces.search
 
isAdultSportsPerson() - Static method in class com.sl.sample.rest.service.predicate.MonkPredicates
 
isArmstrongNumber(int) - Static method in class com.sl.algorithms.core.utils.Formulas
isBitSet(int, int) - Static method in class com.sl.algorithms.core.utils.StringOps
 
isCircular() - Method in class com.sl.algorithms.core.list.ListNode
 
isCyclic() - Method in class com.sl.algorithms.core.list.ListNode
 
isDummyNode() - Method in class com.sl.algorithms.core.list.ListNode
 
isEmptyOrNull(String) - Method in interface com.sl.algorithms.core.interfaces.strings.checks.ParenthesisValidator
 
isLapindrome(String) - Method in interface com.sl.algorithms.core.interfaces.strings.checks.CharSymmetryChecker
 
isLapindrome(String) - Method in class com.sl.algorithms.core.strings.checks.Lapindrome
 
isMajority(T[], T) - Method in interface com.sl.algorithms.core.interfaces.search.MajorityFinder
 
isMajority(T[], T) - Method in class com.sl.algorithms.search.majorityelement.BoyerMooreVoting
 
isMountain(int[]) - Static method in class com.sl.algorithms.core.utils.ArrayOps
 
isNeonNumber(int) - Static method in class com.sl.algorithms.core.utils.Formulas
isPalindrome(int) - Static method in class com.sl.algorithms.core.utils.Formulas

Palindromic NumberOps
//O(n) time and O(1) space
isPalindrome(ListNode<T>) - Static method in class com.sl.algorithms.core.utils.LinkedListOps
isPrimeNumber(long) - Static method in class com.sl.algorithms.core.utils.Formulas
 
isRotation(T[], T[]) - Method in interface com.sl.algorithms.core.interfaces.rotate.RotationEngine
 
isRotation(ListNode<T>, ListNode<T>) - Method in interface com.sl.algorithms.core.interfaces.rotate.RotationEngine
 
isSportsPerson() - Method in class com.sl.sample.rest.service.predicate.Monk
 
isSportsPerson() - Static method in class com.sl.sample.rest.service.predicate.MonkPredicates
 
isTeenager() - Static method in class com.sl.sample.rest.service.predicate.MonkPredicates
 
isValidParenthesis(String) - Method in interface com.sl.algorithms.core.interfaces.strings.checks.ParenthesisValidator
 
isValidParenthesis(String) - Method in class com.sl.algorithms.core.strings.checks.parenthesis.CommonParenthesisValidator

O(n) time and O(1) space.
isValidParenthesis(String) - Method in class com.sl.algorithms.core.strings.checks.parenthesis.MultiBraceParenthesisValidator

Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.

The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.

Solve in O(n) time and O(n) space.
isValidParenthesis(String) - Method in class com.sl.algorithms.core.strings.checks.parenthesis.WildCharParenthesisValidator
Solve in O(n) time and O(1) space.
IterativeBinarySearch<T extends java.lang.Comparable> - Class in com.sl.algorithms.search.binarysearch

Objective: Search in a SORTED array, in Logarithmic time.

Reference
IterativeBinarySearch() - Constructor for class com.sl.algorithms.search.binarysearch.IterativeBinarySearch
 

K

KadaneAlgorithm - Class in com.sl.algorithms.core.array.subarray
KadaneAlgorithm() - Constructor for class com.sl.algorithms.core.array.subarray.KadaneAlgorithm
 
kCheck(int, int) - Method in interface com.sl.algorithms.core.interfaces.select.QuickSelect
 

L

Lapindrome - Class in com.sl.algorithms.core.strings.checks
 
Lapindrome() - Constructor for class com.sl.algorithms.core.strings.checks.Lapindrome
 
LCAFinderIterative<T extends java.lang.Comparable> - Class in com.sl.algorithms.core.tree.lca
 
LCAFinderIterative() - Constructor for class com.sl.algorithms.core.tree.lca.LCAFinderIterative
 
LCAFinderRecursive<T extends java.lang.Comparable> - Class in com.sl.algorithms.core.tree.lca
 
LCAFinderRecursive() - Constructor for class com.sl.algorithms.core.tree.lca.LCAFinderRecursive
 
left - Variable in class com.sl.algorithms.core.tree.TreeNode
 
left - Variable in class com.sl.algorithms.core.utils.Pair
 
LinearSearch<T extends java.lang.Comparable> - Class in com.sl.algorithms.search.linearsearch

O(n) time and O(1) space search in a 1-d array.
LinearSearch() - Constructor for class com.sl.algorithms.search.linearsearch.LinearSearch
 
LinearTimeMNFinder - Class in com.sl.algorithms.search.pigeonhole
O(n) time and O(1) space algorithm to find the first missing positive number.
LinearTimeMNFinder() - Constructor for class com.sl.algorithms.search.pigeonhole.LinearTimeMNFinder
 
LinearTimePEFinder<T extends java.lang.Comparable> - Class in com.sl.algorithms.search.peakelement
Linear time-complexity algorithm to find peak element in a bitonic series.
LinearTimePEFinder() - Constructor for class com.sl.algorithms.search.peakelement.LinearTimePEFinder
 
LinkedListMergeDnQ<T extends java.lang.Comparable> - Class in com.sl.algorithms.core.list.merge
 
LinkedListMergeDnQ() - Constructor for class com.sl.algorithms.core.list.merge.LinkedListMergeDnQ
 
LinkedListMergeIterative<T extends java.lang.Comparable> - Class in com.sl.algorithms.core.list.merge
Iteratively merge lists from an array of sorted lists - for reference only.
LinkedListMergeIterative() - Constructor for class com.sl.algorithms.core.list.merge.LinkedListMergeIterative
 
LinkedListMergePQ<T extends java.lang.Comparable> - Class in com.sl.algorithms.core.list.merge

Merge K sorted lists, using priority-queue

Complexity:
Time: O(N * logK): N = total number of nodes and K = total number of lists.
LinkedListMergePQ() - Constructor for class com.sl.algorithms.core.list.merge.LinkedListMergePQ
 
LinkedListOps - Class in com.sl.algorithms.core.utils
 
LinkedListRotation<T extends java.lang.Comparable> - Class in com.sl.algorithms.core.list.rotation

Requirement: rotate w/in O(n) time and O(1) space.
LinkedListRotation() - Constructor for class com.sl.algorithms.core.list.rotation.LinkedListRotation
 
LIST_IS_EMPTY - Static variable in interface com.sl.algorithms.core.interfaces.base.Constants
 
ListIntersection<T extends java.lang.Comparable> - Class in com.sl.algorithms.core.list.intersection

Problem Reference

Requirement: O(m+n) time and O(1) space
ListIntersection() - Constructor for class com.sl.algorithms.core.list.intersection.ListIntersection
 
ListNode<T extends java.lang.Comparable> - Class in com.sl.algorithms.core.list
Basic representation of a singly LinkedList node.
ListNode(T) - Constructor for class com.sl.algorithms.core.list.ListNode
 
LogTimePEFinder<T extends java.lang.Comparable> - Class in com.sl.algorithms.search.peakelement
Sub-linear time-complexity algorithm to find peak element in a bitonic series.
LogTimePEFinder() - Constructor for class com.sl.algorithms.search.peakelement.LogTimePEFinder
 
LowestCommonAncestor<T extends java.lang.Comparable> - Interface in com.sl.algorithms.core.interfaces.search

M

main(String[]) - Static method in class com.sl.sample.rest.service.SampleRESTApplication
 
MajorityFinder<T extends java.lang.Comparable> - Interface in com.sl.algorithms.core.interfaces.search
 
MaxNonNeighboursCircularSum - Class in com.sl.algorithms.core.array.subarray
MaxNonNeighboursCircularSum() - Constructor for class com.sl.algorithms.core.array.subarray.MaxNonNeighboursCircularSum
 
MaxNonNeighboursSum - Class in com.sl.algorithms.core.array.subarray
MaxNonNeighboursSum() - Constructor for class com.sl.algorithms.core.array.subarray.MaxNonNeighboursSum
 
MaxSubSequenceSum - Class in com.sl.algorithms.core.array.subarray
Maximum non-contiguous sub-array sum.
MaxSubSequenceSum() - Constructor for class com.sl.algorithms.core.array.subarray.MaxSubSequenceSum
 
MedianFinder<T extends java.lang.Comparable> - Interface in com.sl.algorithms.core.interfaces.select

Given an array A = A[1,...,n] and an index kMax (1 ≤ kMax ≤ n), find the kth smallest element of A.

Reference 1
Reference 2
medianOf3(T[], int, int) - Method in interface com.sl.algorithms.core.interfaces.select.QuickSelect
merge(T[], int, int, int, T[]) - Method in class com.sl.algorithms.sort.generalpurpose.merge.MergeSort
Objective: MERGE and SORT 2 parts (s to m and m to e) of an array A (read-only), into an output array B.
merge2SortedLists(ListNode<T>, ListNode<T>) - Method in interface com.sl.algorithms.core.interfaces.merge.MergeEngine
 
merge2SortedLists(ListNode<T>, ListNode<T>) - Method in class com.sl.algorithms.core.list.merge.LinkedListMergeDnQ

O(n+m) time and space recursive method to merge 2 sorted lists.
merge2SortedLists(ListNode<T>, ListNode<T>) - Method in class com.sl.algorithms.core.list.merge.LinkedListMergeIterative
O(n+m) time and space iterative method to merge 2 sorted lists.
merge2SortedLists(ListNode<T>, ListNode<T>) - Method in class com.sl.algorithms.core.list.merge.LinkedListMergePQ
 
MergeEngine<T extends java.lang.Comparable> - Interface in com.sl.algorithms.core.interfaces.merge
 
mergeKSortedLists(ListNode<T>[]) - Method in interface com.sl.algorithms.core.interfaces.merge.MergeEngine
 
mergeKSortedLists(ListNode<T>[]) - Method in class com.sl.algorithms.core.list.merge.LinkedListMergeDnQ

Merge K sorted lists, using divide-n-conquer technique

Complexity:
- Time: O(N * logK): N = total number of nodes and K = total number of lists.
mergeKSortedLists(ListNode<T>[]) - Method in class com.sl.algorithms.core.list.merge.LinkedListMergeIterative
 
mergeKSortedLists(ListNode<T>[]) - Method in class com.sl.algorithms.core.list.merge.LinkedListMergePQ
 
MergeSort<T extends java.lang.Comparable> - Class in com.sl.algorithms.sort.generalpurpose.merge

A general-purpose stable sort algorithm with a guaranteed time complexity of O(nlogn) and O(n) space.

InventorJohn Von Neumann

Reference 1
Reference 2
MergeSort() - Constructor for class com.sl.algorithms.sort.generalpurpose.merge.MergeSort
 
midPoint() - Method in class com.sl.algorithms.core.list.ListNode
Floyd is great !
midPoint(int, int) - Static method in class com.sl.algorithms.core.utils.Formulas
 
MinStack - Class in com.sl.algorithms.core.stack
MinStack() - Constructor for class com.sl.algorithms.core.stack.MinStack
 
MissingNumberFinder - Interface in com.sl.algorithms.core.interfaces.search.pigeonhole

Find the missing number in a list of numbers.

Variants:
1- array of size 'n' where member elements range is {0...n} and one number goes missing.
Monk - Class in com.sl.sample.rest.service.predicate
 
Monk(int, boolean) - Constructor for class com.sl.sample.rest.service.predicate.Monk
 
MonkPredicates - Class in com.sl.sample.rest.service.predicate
 
MultiBraceParenthesisValidator - Class in com.sl.algorithms.core.strings.checks.parenthesis
 
MultiBraceParenthesisValidator() - Constructor for class com.sl.algorithms.core.strings.checks.parenthesis.MultiBraceParenthesisValidator
 

N

NaiveShuffle<T extends java.lang.Comparable> - Class in com.sl.algorithms.shuffle
In-place algorithm to shuffle the input data.
NaiveShuffle() - Constructor for class com.sl.algorithms.shuffle.NaiveShuffle
 
NarayanPanditPermutationAlgorithm - Class in com.sl.algorithms.search.nge
NarayanPanditPermutationAlgorithm() - Constructor for class com.sl.algorithms.search.nge.NarayanPanditPermutationAlgorithm
 
NegativeCounter - Interface in com.sl.algorithms.core.interfaces.count
 
next - Variable in class com.sl.algorithms.core.list.ListNode
 
NextGreaterElement - Interface in com.sl.algorithms.core.interfaces.search
 
NGE_NOT_FOUND - Static variable in interface com.sl.algorithms.core.interfaces.search.NextGreaterElement
 
NGECircularArray - Class in com.sl.algorithms.search.nge
NGECircularArray() - Constructor for class com.sl.algorithms.search.nge.NGECircularArray
 
NGERegularArray - Class in com.sl.algorithms.search.nge
NGERegularArray() - Constructor for class com.sl.algorithms.search.nge.NGERegularArray
 
NO_DUPLICATES_FOUND - Static variable in interface com.sl.algorithms.core.interfaces.search.pigeonhole.DuplicateFinder
 
NumberOps - Class in com.sl.algorithms.core.utils
 

O

OPERATION_NOT_SUPPORTED_YET - Static variable in interface com.sl.algorithms.core.interfaces.base.Constants
 
OpPosition - Enum in com.sl.algorithms.core.interfaces.base
Enumeration of positions at which an insert/delete operation may be requested for.
orderOf(int) - Static method in class com.sl.algorithms.core.utils.Formulas
 

P

Pair<L,R> - Class in com.sl.algorithms.core.utils
General purpose Pair object.
Pair(L, R) - Constructor for class com.sl.algorithms.core.utils.Pair
 
ParenthesisValidator - Interface in com.sl.algorithms.core.interfaces.strings.checks
 
ParenthesisValidator.ParenthesisEnum - Enum in com.sl.algorithms.core.interfaces.strings.checks
 
PeakElementFinder<T extends java.lang.Comparable> - Interface in com.sl.algorithms.core.interfaces.search

Problem Reference

Given an 'bitonic sequence' array which is in ascending order till some point and then descending order till end, find peak element.
pivotSort(T[], int, int, int) - Method in interface com.sl.algorithms.core.interfaces.select.QuickSelect

Core Algorithm to sort one side of the pivot.
plusOne(Integer[]) - Static method in class com.sl.algorithms.core.utils.NumberOps
 
PolishNationalFlagSort<T extends java.lang.Comparable> - Class in com.sl.algorithms.sort.finitegroups

A precursor to DutchNationalFlagSort, inspired by Wei-Mei Chen's paper.
PolishNationalFlagSort(T, T) - Constructor for class com.sl.algorithms.sort.finitegroups.PolishNationalFlagSort
PolishNationalFlagSort(T) - Constructor for class com.sl.algorithms.sort.finitegroups.PolishNationalFlagSort
 
pop() - Method in class com.sl.algorithms.core.stack.MinStack
 
PQMedianFinder<T extends java.lang.Comparable> - Class in com.sl.algorithms.search.median

PriorityQueue (Max Heap) based solution, for reference only.

Time : O(N logN) worst-case and O(N logk) on average
Space: O(N) worst case and O(kMax) on average
PQMedianFinder() - Constructor for class com.sl.algorithms.search.median.PQMedianFinder
 
printArmstrongNumbers(int) - Static method in class com.sl.algorithms.core.utils.Formulas
 
printArray(T[]) - Static method in class com.sl.algorithms.core.utils.ArrayOps
 
printArray(int[]) - Static method in class com.sl.algorithms.core.utils.ArrayOps
 
ProductCalculator - Interface in com.sl.algorithms.core.interfaces.count
 
productExceptSelf(int[]) - Method in class com.sl.algorithms.core.array.subarray.RunningProduct
productExceptSelf(int[]) - Method in interface com.sl.algorithms.core.interfaces.count.ProductCalculator
 
push(int) - Method in class com.sl.algorithms.core.stack.MinStack
 

Q

QuickSelect<T extends java.lang.Comparable> - Interface in com.sl.algorithms.core.interfaces.select
Find kth largest/smallest element in an unsorted array, in Linear time as average-case.
quickSelect(T[], int, int, int) - Method in interface com.sl.algorithms.core.interfaces.select.QuickSelect

Core QuickSelect Algorithm.
QuickSelectMedianFinder<T extends java.lang.Comparable> - Class in com.sl.algorithms.search.median

As-is inherited implementation from MedianFinder and QuickSelect.
QuickSelectMedianFinder() - Constructor for class com.sl.algorithms.search.median.QuickSelectMedianFinder
 
QuickSort<T extends java.lang.Comparable> - Class in com.sl.algorithms.sort.generalpurpose

A general-purpose non-stable sort algorithm with an average time complexity of O(nlogn) and O(n) worst-case recursive space.

InventorTony Hoare

Reference 1
Reference 2
QuickSort() - Constructor for class com.sl.algorithms.sort.generalpurpose.QuickSort
 

R

RadixSort<T extends java.lang.Integer> - Class in com.sl.algorithms.sort.finitegroups.integersorting

O((n+radix)*(log(kMax))) runtime performance integer sort algorithm, where radix=10 for this specific implementation.

Depends on CountingSort

Reference 1
Reference 2
RadixSort() - Constructor for class com.sl.algorithms.sort.finitegroups.integersorting.RadixSort
 
raiseTo(int, int) - Static method in class com.sl.algorithms.core.utils.Formulas
 
RecursiveBinarySearch<T extends java.lang.Comparable> - Class in com.sl.algorithms.search.binarysearch

Objective: Search in a SORTED array, in Logarithmic time.

Reference
RecursiveBinarySearch() - Constructor for class com.sl.algorithms.search.binarysearch.RecursiveBinarySearch
 
removeData(ListNode<T>, T) - Static method in class com.sl.algorithms.core.utils.LinkedListOps
 
removeDataByPosition(ListNode<T>, OpPosition) - Static method in class com.sl.algorithms.core.utils.LinkedListOps
 
removeDuplicates(ListNode<T>) - Static method in class com.sl.algorithms.core.utils.LinkedListOps
 
reorderList(ListNode<T>) - Static method in class com.sl.algorithms.core.utils.LinkedListOps

Reorder List

Approach: Find the mid-point; break the list into 2 parts around the mid-point; establish new links.
reverse(T[]) - Static method in class com.sl.algorithms.core.utils.ArrayOps
 
reverse(T[], int, int) - Static method in class com.sl.algorithms.core.utils.ArrayOps
 
reverse(int[]) - Static method in class com.sl.algorithms.core.utils.ArrayOps
 
reverse(int[], int, int) - Static method in class com.sl.algorithms.core.utils.ArrayOps
 
reverse(ListNode<T>) - Static method in class com.sl.algorithms.core.utils.LinkedListOps
O(n) time and O(1) space method to reverse a list.
reverse(int) - Static method in class com.sl.algorithms.core.utils.NumberOps
 
reverseListInGroups(ListNode<T>, int) - Static method in class com.sl.algorithms.core.utils.LinkedListOps
O(n) time and O(n/kMax) recursion-space method to reverse list in groups of kMax.
right - Variable in class com.sl.algorithms.core.tree.TreeNode
 
right - Variable in class com.sl.algorithms.core.utils.Pair
 
rotate(T[], int, boolean) - Method in class com.sl.algorithms.core.array.rotation.BentleyRotationByShuffling
 
rotate(ListNode<T>, int, boolean) - Method in class com.sl.algorithms.core.array.rotation.BentleyRotationByShuffling
 
rotate(T[], int, boolean) - Method in class com.sl.algorithms.core.array.rotation.BruteForceRotation
 
rotate(ListNode<T>, int, boolean) - Method in class com.sl.algorithms.core.array.rotation.BruteForceRotation
 
rotate(T[], int, boolean) - Method in class com.sl.algorithms.core.array.rotation.BruteForceRotationWithSpace
 
rotate(ListNode<T>, int, boolean) - Method in class com.sl.algorithms.core.array.rotation.BruteForceRotationWithSpace
 
rotate(T[], int, boolean) - Method in class com.sl.algorithms.core.array.rotation.DougMcIlroyAlgorithm
 
rotate(ListNode<T>, int, boolean) - Method in class com.sl.algorithms.core.array.rotation.DougMcIlroyAlgorithm
 
rotate(T[], int, boolean) - Method in class com.sl.algorithms.core.array.rotation.GriesMillsRotation
 
rotate(ListNode<T>, int, boolean) - Method in class com.sl.algorithms.core.array.rotation.GriesMillsRotation
 
rotate(T[], int, boolean) - Method in interface com.sl.algorithms.core.interfaces.rotate.RotationEngine
 
rotate(ListNode<T>, int, boolean) - Method in interface com.sl.algorithms.core.interfaces.rotate.RotationEngine
 
rotate(ListNode<T>, int, boolean) - Method in class com.sl.algorithms.core.list.rotation.LinkedListRotation

Approach:
0.
rotate(T[], int, boolean) - Method in class com.sl.algorithms.core.list.rotation.LinkedListRotation
 
rotateLeft(T[], int) - Method in class com.sl.algorithms.core.array.rotation.BruteForceRotationWithSpace
 
rotateListLeft(ListNode<T>, int) - Method in class com.sl.algorithms.core.list.rotation.LinkedListRotation
 
rotateListRight(ListNode<T>, int) - Method in class com.sl.algorithms.core.list.rotation.LinkedListRotation
 
RotationEngine<T extends java.lang.Comparable> - Interface in com.sl.algorithms.core.interfaces.rotate
 
RunningProduct - Class in com.sl.algorithms.core.array.subarray
 
RunningProduct() - Constructor for class com.sl.algorithms.core.array.subarray.RunningProduct
 

S

SampleRESTApplication - Class in com.sl.sample.rest.service
 
SampleRESTApplication() - Constructor for class com.sl.sample.rest.service.SampleRESTApplication
 
SampleRESTController - Class in com.sl.sample.rest.service
 
SampleRESTController() - Constructor for class com.sl.sample.rest.service.SampleRESTController
 
SampleRESTResource - Class in com.sl.sample.rest.service
 
SampleRESTResource(long, String) - Constructor for class com.sl.sample.rest.service.SampleRESTResource
 
SattoloShuffle<T extends java.lang.Comparable> - Class in com.sl.algorithms.shuffle
FisherYatesKnuthShuffle produces a random permutation while SattoloShuffle produces a random permutation with exactly one cycle.
SattoloShuffle() - Constructor for class com.sl.algorithms.shuffle.SattoloShuffle
 
sayHello(String) - Method in class com.sl.sample.rest.service.SampleRESTController
For a given input 'name', output the JSON form of "Hello 'name'".
Search<T extends java.lang.Comparable> - Interface in com.sl.algorithms.core.interfaces.search
 
searchBinary(Integer[], Integer) - Method in class com.sl.sample.rest.service.SampleRESTController
Apply Binary Search to find the position of a number in a sorted linear.
SelectionSort<T extends java.lang.Comparable> - Class in com.sl.algorithms.sort.generalpurpose.smalldata

In-place quadratic-complexity sort algorithm, useful for small data-set.

Reference

Approach: Given a list, take the current element and exchange it with the smallest element on the right.

Usage: Small data-set / when 'write' operation is expensive.

Inner Loop: operates on the Unsorted portion.
SelectionSort() - Constructor for class com.sl.algorithms.sort.generalpurpose.smalldata.SelectionSort
 
shuffle(T[]) - Method in interface com.sl.algorithms.core.interfaces.shuffle.ShufflingEngine
 
shuffle(T[]) - Method in class com.sl.algorithms.shuffle.FisherYatesKnuthShuffle
 
shuffle(T[]) - Method in class com.sl.algorithms.shuffle.NaiveShuffle
 
shuffle(T[]) - Method in class com.sl.algorithms.shuffle.SattoloShuffle
 
ShufflingEngine<T extends java.lang.Comparable> - Interface in com.sl.algorithms.core.interfaces.shuffle
 
size() - Method in class com.sl.algorithms.core.list.ListNode
 
sort(T[]) - Method in interface com.sl.algorithms.core.interfaces.sort.SortingEngine
 
sort(T[]) - Method in class com.sl.algorithms.sort.advanced.wave.WiggleSort
 
sort(T[]) - Method in class com.sl.algorithms.sort.advanced.wave.WiggleSortII
 
sort(T[]) - Method in class com.sl.algorithms.sort.finitegroups.bucketsort.BucketSort
 
sort(T[]) - Method in class com.sl.algorithms.sort.finitegroups.DutchNationalFlagSort

Approach:
sort(T[]) - Method in class com.sl.algorithms.sort.finitegroups.ElementMover
O(n) time and O(1) space, with optimal # operations in worst case.
sort(T[]) - Method in class com.sl.algorithms.sort.finitegroups.integersorting.CountingSort
 
sort(T[]) - Method in class com.sl.algorithms.sort.finitegroups.integersorting.RadixSort
 
sort(T[]) - Method in class com.sl.algorithms.sort.finitegroups.PolishNationalFlagSort

Approach:
sort(T[]) - Method in class com.sl.algorithms.sort.generalpurpose.heap.HeapSort
 
sort(T[]) - Method in class com.sl.algorithms.sort.generalpurpose.merge.BottomUpMergeSort

Steps:
(0) if list is of size=1, return as is (i.e.
sort(T[]) - Method in class com.sl.algorithms.sort.generalpurpose.merge.TopDownMergeSort

Steps:
(0) if list is of size=1, return as is (i.e.
sort(T[]) - Method in class com.sl.algorithms.sort.generalpurpose.QuickSort
 
sort(T[]) - Method in class com.sl.algorithms.sort.generalpurpose.smalldata.BubbleSort
 
sort(T[]) - Method in class com.sl.algorithms.sort.generalpurpose.smalldata.InsertionSort
 
sort(T[]) - Method in class com.sl.algorithms.sort.generalpurpose.smalldata.SelectionSort
 
SortingEngine<T extends java.lang.Comparable> - Interface in com.sl.algorithms.core.interfaces.sort
 
sortList(ListNode<T>) - Method in interface com.sl.algorithms.core.interfaces.sort.SortingEngine
 
sortList(ListNode<T>) - Method in class com.sl.algorithms.sort.advanced.wave.WiggleSort
 
sortList(ListNode<T>) - Method in class com.sl.algorithms.sort.advanced.wave.WiggleSortII
 
sortList(ListNode<T>) - Method in class com.sl.algorithms.sort.finitegroups.bucketsort.BucketSort
 
sortList(ListNode<T>) - Method in class com.sl.algorithms.sort.finitegroups.DutchNationalFlagSort
 
sortList(ListNode<T>) - Method in class com.sl.algorithms.sort.finitegroups.ElementMover
 
sortList(ListNode<T>) - Method in class com.sl.algorithms.sort.finitegroups.integersorting.CountingSort
 
sortList(ListNode<T>) - Method in class com.sl.algorithms.sort.finitegroups.PolishNationalFlagSort
 
sortList(ListNode<T>) - Method in class com.sl.algorithms.sort.generalpurpose.heap.HeapSort
 
sortList(ListNode<T>) - Method in class com.sl.algorithms.sort.generalpurpose.merge.BottomUpMergeSort
 
sortList(ListNode<T>) - Method in class com.sl.algorithms.sort.generalpurpose.merge.TopDownMergeSort
 
sortList(ListNode<T>) - Method in class com.sl.algorithms.sort.generalpurpose.QuickSort
 
sortList(ListNode<T>) - Method in class com.sl.algorithms.sort.generalpurpose.smalldata.BubbleSort
 
sortList(ListNode<T>) - Method in class com.sl.algorithms.sort.generalpurpose.smalldata.InsertionSort
sortList(ListNode<T>) - Method in class com.sl.algorithms.sort.generalpurpose.smalldata.SelectionSort
 
StringOps - Class in com.sl.algorithms.core.utils
 
SubArrayProduct - Interface in com.sl.algorithms.core.interfaces.subarray
 
SubArraySum - Interface in com.sl.algorithms.core.interfaces.subarray
 
swap(T[], int, int) - Static method in class com.sl.algorithms.core.utils.ArrayOps
 
swap(int[], int, int) - Static method in class com.sl.algorithms.core.utils.ArrayOps
 
swapInBlocks(T[], int, int, int) - Static method in class com.sl.algorithms.core.utils.ArrayOps
 
swapInPairs(ListNode<T>) - Static method in class com.sl.algorithms.core.utils.LinkedListOps
O(n) time and O(n/2) recursion-space method to swap/reverse in pairs.

T

tail() - Method in class com.sl.algorithms.core.list.ListNode
Scope: regular or circular list; for cyclic list, use #getEndPointsForCyclicList.
top() - Method in class com.sl.algorithms.core.stack.MinStack
 
TopDownMergeSort<T extends java.lang.Comparable> - Class in com.sl.algorithms.sort.generalpurpose.merge
TopDownMergeSort recursively splits the array into sub-lists and merges them to produce a sorted list.
TopDownMergeSort() - Constructor for class com.sl.algorithms.sort.generalpurpose.merge.TopDownMergeSort
 
toString() - Method in class com.sl.algorithms.core.list.ListNode
 
toString() - Method in class com.sl.algorithms.core.utils.Pair
 
TreeNode<T extends java.lang.Comparable> - Class in com.sl.algorithms.core.tree
Basic representation of a Binary Tree node.
TreeNode(T) - Constructor for class com.sl.algorithms.core.tree.TreeNode
 

V

valueOf(String) - Static method in enum com.sl.algorithms.core.interfaces.base.OpPosition
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum com.sl.algorithms.core.interfaces.strings.checks.ParenthesisValidator.ParenthesisEnum
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum com.sl.algorithms.sort.generalpurpose.heap.HeapType
Returns the enum constant of this type with the specified name.
values() - Static method in enum com.sl.algorithms.core.interfaces.base.OpPosition
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum com.sl.algorithms.core.interfaces.strings.checks.ParenthesisValidator.ParenthesisEnum
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum com.sl.algorithms.sort.generalpurpose.heap.HeapType
Returns an array containing the constants of this enum type, in the order they are declared.

W

WiggleSort<T extends java.lang.Comparable> - Class in com.sl.algorithms.sort.advanced.wave
WiggleSort() - Constructor for class com.sl.algorithms.sort.advanced.wave.WiggleSort
 
WiggleSortII<T extends java.lang.Comparable> - Class in com.sl.algorithms.sort.advanced.wave
WiggleSortII() - Constructor for class com.sl.algorithms.sort.advanced.wave.WiggleSortII
 
WildCharParenthesisValidator - Class in com.sl.algorithms.core.strings.checks.parenthesis
Validations: Any left parenthesis '(' must have a corresponding right parenthesis ')' Any right parenthesis ')' must have a corresponding left parenthesis '(' Left parenthesis '(' must go before the corresponding right parenthesis ')' '*' could be treated as a single right parenthesis ')' or a single left parenthesis '(' or an empty string An empty string is also valid.
WildCharParenthesisValidator() - Constructor for class com.sl.algorithms.core.strings.checks.parenthesis.WildCharParenthesisValidator
 
A B C D E F G H I K L M N O P Q R S T V W 
Skip navigation links