diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml
index b815e2152..ffd13a1b5 100644
--- a/.github/workflows/gradle.yml
+++ b/.github/workflows/gradle.yml
@@ -20,14 +20,14 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11
- uses: actions/setup-java@v3
+ uses: actions/setup-java@v4
with:
java-version: 11
distribution: 'temurin'
- name: Validate Gradle Wrapper
- uses: gradle/wrapper-validation-action@v1
+ uses: gradle/wrapper-validation-action@v3
- name: Setup and execute tests via Gradle
- uses: gradle/gradle-build-action@v2
+ uses: gradle/gradle-build-action@v3
with:
gradle-version: wrapper
arguments: test
@@ -46,14 +46,14 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11
- uses: actions/setup-java@v3
+ uses: actions/setup-java@v4
with:
java-version: 11
distribution: 'temurin'
- name: Validate Gradle Wrapper
- uses: gradle/wrapper-validation-action@v1
+ uses: gradle/wrapper-validation-action@v3
- name: Verify all Java files are formatted correctly according to the Google Java Style Guide using Gradle
- uses: gradle/gradle-build-action@v2
+ uses: gradle/gradle-build-action@v3
id: verifygooglejavaformat
with:
gradle-version: wrapper
diff --git a/README.md b/README.md
index 73faaf43c..a42be2f99 100644
--- a/README.md
+++ b/README.md
@@ -293,7 +293,7 @@ $ java -cp classes com.williamfiset.algorithms.search.BinarySearch
- [Counting sort](src/main/java/com/williamfiset/algorithms/sorting/CountingSort.java) **- O(n + k)**
- [Heapsort](src/main/java/com/williamfiset/algorithms/sorting/Heapsort.java) **- O(nlog(n))**
- [Insertion sort](src/main/java/com/williamfiset/algorithms/sorting/InsertionSort.java) **- O(n2)**
-- [Mergesort](src/main/java/com/williamfiset/algorithms/sorting/MergeSort.java) **- O(nlog(n))**
+- [:movie_camera:](https://www.youtube.com/watch?v=-3u1C1URNZY) [Mergesort](src/main/java/com/williamfiset/algorithms/sorting/MergeSort.java) **- O(nlog(n))**
- [Quicksort (in-place, Hoare partitioning)](src/main/java/com/williamfiset/algorithms/sorting/QuickSort.java) **- Θ(nlog(n))**
- [Quicksort3 (Dutch National Flag algorithm)](src/main/java/com/williamfiset/algorithms/sorting/QuickSort3.java) **- Θ(nlog(n))**
- [Selection sort](src/main/java/com/williamfiset/algorithms/sorting/SelectionSort.java) **- O(n2)**
diff --git a/build.gradle b/build.gradle
index c4f835316..2c69fb357 100644
--- a/build.gradle
+++ b/build.gradle
@@ -8,7 +8,7 @@ buildscript {
plugins {
// https://github.com/diffplug/spotless
- id("com.diffplug.spotless") version "6.20.0"
+ id("com.diffplug.spotless") version "6.25.0"
}
apply plugin: 'java'
@@ -25,14 +25,14 @@ repositories {
// 'compile' for project dependencies.
dependencies {
// Apache commons lang
- testImplementation 'org.apache.commons:commons-lang3:3.13.0'
+ testImplementation 'org.apache.commons:commons-lang3:3.14.0'
// JUnit 5 / Jupiter
testImplementation('org.junit.jupiter:junit-jupiter:5.10.0')
testRuntimeOnly('org.junit.jupiter:junit-jupiter-engine:5.10.0')
// Google Guava lib
- testImplementation group: 'com.google.guava', name: 'guava', version: '32.1.2-jre'
+ testImplementation group: 'com.google.guava', name: 'guava', version: '33.3.1-jre'
// Google Truth test framework
// https://mvnrepository.com/artifact/com.google.truth/truth
diff --git a/src/main/java/com/williamfiset/algorithms/datastructures/suffixarray/SuffixArray.java b/src/main/java/com/williamfiset/algorithms/datastructures/suffixarray/SuffixArray.java
index 77b5c498a..ac8702f12 100644
--- a/src/main/java/com/williamfiset/algorithms/datastructures/suffixarray/SuffixArray.java
+++ b/src/main/java/com/williamfiset/algorithms/datastructures/suffixarray/SuffixArray.java
@@ -88,6 +88,7 @@ private void kasai() {
@Override
public String toString() {
+ if (!constructedLcpArray) buildLcpArray();
StringBuilder sb = new StringBuilder();
sb.append("-----i-----SA-----LCP---Suffix\n");