From 3da6b50fd23bc6c553b29fd634284b20930a1174 Mon Sep 17 00:00:00 2001 From: meetinger Date: Tue, 31 Mar 2020 16:15:00 +0300 Subject: [PATCH 01/40] Move to Maven --- .classpath | 13 -- .gitattributes | 22 --- .project | 22 --- .settings/org.eclipse.jdt.core.prefs | 13 -- .settings/org.eclipse.jdt.ui.prefs | 2 - ArrayVisualizer.iml | 2 + LICENSE | 22 --- README.md | 118 ------------ build.xml | 84 --------- dist/arrayVisualizer.jar | Bin 1931989 -> 0 bytes lib/classgraph-4.8.47-javadoc.jar | Bin 805253 -> 0 bytes lib/classgraph-4.8.47-sources.jar | Bin 431003 -> 0 bytes lib/classgraph-4.8.47.jar | Bin 467217 -> 0 bytes pom.xml | 84 +++++++++ src/SortPrompt.form | 138 -------------- src/UtilFrame.form | 123 ------------- src/ViewPrompt.form | 169 ------------------ {bin => src/main/java}/SortPrompt.form | 0 {bin => src/main/java}/UtilFrame.form | 0 {bin => src/main/java}/ViewPrompt.form | 0 src/{ => main/java}/frames/ArrayFrame.java | 6 +- src/{ => main/java}/frames/UtilFrame.java | 6 +- src/main/{ => java/main}/ArrayManager.java | 0 src/main/{ => java/main}/ArrayVisualizer.java | 2 - src/main/{ => java/main}/SortAnalyzer.java | 0 .../java}/prompts/ShufflePrompt.java | 2 +- src/{ => main/java}/prompts/SortPrompt.java | 2 +- src/{ => main/java}/prompts/ViewPrompt.java | 2 +- .../java}/sorts/AmericanFlagSort.java | 0 src/{ => main/java}/sorts/BadSort.java | 0 .../java}/sorts/BinaryGnomeSort.java | 0 .../java}/sorts/BinaryInsertionSort.java | 0 .../java}/sorts/BinaryMergeSort.java | 0 .../java}/sorts/BinaryQuickSort.java | 0 src/{ => main/java}/sorts/BitonicSort.java | 0 src/{ => main/java}/sorts/BogoSort.java | 0 .../java}/sorts/BottomUpMergeSort.java | 0 .../java}/sorts/BranchedPDQSort.java | 0 .../java}/sorts/BranchlessPDQSort.java | 0 src/{ => main/java}/sorts/BubbleBogoSort.java | 0 src/{ => main/java}/sorts/BubbleSort.java | 0 src/{ => main/java}/sorts/CircleSort.java | 0 .../java}/sorts/CocktailBogoSort.java | 0 .../java}/sorts/CocktailMergeSort.java | 0 .../java}/sorts/CocktailShakerSort.java | 0 src/{ => main/java}/sorts/CombSort.java | 0 src/{ => main/java}/sorts/CountingSort.java | 0 src/{ => main/java}/sorts/CycleSort.java | 0 .../java}/sorts/DoubleSelectionSort.java | 0 .../java}/sorts/DualPivotQuickSort.java | 0 .../java}/sorts/ExchangeBogoSort.java | 0 src/{ => main/java}/sorts/FlashSort.java | 0 src/{ => main/java}/sorts/GnomeSort.java | 0 src/{ => main/java}/sorts/GrailSort.java | 0 src/{ => main/java}/sorts/GravitySort.java | 0 src/{ => main/java}/sorts/HolyGrailSort.java | 0 src/{ => main/java}/sorts/HybridCombSort.java | 0 .../java}/sorts/InPlaceLSDRadixSort.java | 0 .../java}/sorts/InPlaceMergeSort.java | 0 src/{ => main/java}/sorts/InsertionSort.java | 0 .../java}/sorts/IntroCircleSort.java | 0 src/{ => main/java}/sorts/IntroSort.java | 0 .../java}/sorts/IterativeBitonicSort.java | 0 .../sorts/IterativeOddEvenMergeSort.java | 0 .../java}/sorts/IterativePairwiseSort.java | 0 src/{ => main/java}/sorts/LLQuickSort.java | 0 src/{ => main/java}/sorts/LRQuickSort.java | 0 src/{ => main/java}/sorts/LSDRadixSort.java | 0 src/{ => main/java}/sorts/LazyStableSort.java | 0 src/{ => main/java}/sorts/LessBogoSort.java | 0 src/{ => main/java}/sorts/MSDRadixSort.java | 0 src/{ => main/java}/sorts/MaxHeapSort.java | 0 src/{ => main/java}/sorts/MergeSort.java | 0 src/{ => main/java}/sorts/MinHeapSort.java | 0 .../java}/sorts/OddEvenMergeSort.java | 0 src/{ => main/java}/sorts/OddEvenSort.java | 0 .../sorts/OptimizedDualPivotQuickSort.java | 0 src/{ => main/java}/sorts/PancakeSort.java | 0 src/{ => main/java}/sorts/PatienceSort.java | 0 src/{ => main/java}/sorts/PigeonholeSort.java | 0 src/{ => main/java}/sorts/PoplarHeapSort.java | 0 .../java}/sorts/RecursiveBinaryQuickSort.java | 0 .../java}/sorts/RecursiveBitonicSort.java | 0 .../java}/sorts/RecursiveCombSort.java | 0 .../sorts/RecursiveOddEvenMergeSort.java | 0 .../java}/sorts/RecursivePairwiseSort.java | 0 .../java}/sorts/RotateMergeSort.java | 0 src/{ => main/java}/sorts/SelectionSort.java | 0 src/{ => main/java}/sorts/ShatterSort.java | 0 src/{ => main/java}/sorts/ShellSort.java | 0 src/{ => main/java}/sorts/SillySort.java | 0 .../java}/sorts/SimpleShatterSort.java | 0 src/{ => main/java}/sorts/SkaSort.java | 0 src/{ => main/java}/sorts/SlowSort.java | 0 .../java}/sorts/SmartBubbleSort.java | 0 src/{ => main/java}/sorts/SmartGnomeSort.java | 0 src/{ => main/java}/sorts/SmoothSort.java | 0 src/{ => main/java}/sorts/SqrtSort.java | 0 .../java}/sorts/StableQuickSort.java | 0 src/{ => main/java}/sorts/StoogeSort.java | 0 .../java}/sorts/TernaryHeapSort.java | 0 src/{ => main/java}/sorts/TimSort.java | 0 src/{ => main/java}/sorts/TimeSort.java | 0 src/{ => main/java}/sorts/TournamentSort.java | 0 src/{ => main/java}/sorts/TreeSort.java | 0 src/{ => main/java}/sorts/WeakHeapSort.java | 0 src/{ => main/java}/sorts/WeaveMergeSort.java | 0 src/{ => main/java}/sorts/WikiSort.java | 0 .../templates/BinaryInsertionSorting.java | 0 .../java}/templates/BinaryQuickSorting.java | 0 .../java}/templates/BogoSorting.java | 0 .../java}/templates/CircleSorting.java | 0 .../java}/templates/CombSorting.java | 0 src/{ => main/java}/templates/Frame.java | 0 .../java}/templates/GrailSorting.java | 0 .../java}/templates/HeapSorting.java | 0 .../java}/templates/HolyGrailSorting.java | 0 .../java}/templates/InsertionSorting.java | 0 .../java}/templates/MergeSorting.java | 0 .../java}/templates/MultipleSortThread.java | 0 src/{ => main/java}/templates/PDQSorting.java | 0 .../java}/templates/ShatterSorting.java | 0 .../java}/templates/ShellSorting.java | 0 src/{ => main/java}/templates/Sort.java | 0 src/{ => main/java}/templates/TimSorting.java | 0 .../java}/templates/WikiSorting.java | 0 src/{ => main/java}/test/Tester.java | 0 src/{ => main/java}/threads/RunAllSorts.java | 0 .../java}/threads/RunComparisonSort.java | 0 .../java}/threads/RunDistributionSort.java | 0 .../java}/threads/RunExchangeSorts.java | 0 .../java}/threads/RunInsertionSorts.java | 0 .../java}/threads/RunMergeSorts.java | 0 .../java}/threads/RunSelectionSorts.java | 0 src/{ => main/java}/utils/Delays.java | 0 src/{ => main/java}/utils/Highlights.java | 0 src/{ => main/java}/utils/Reads.java | 0 src/{ => main/java}/utils/Renderer.java | 0 src/{ => main/java}/utils/Shuffles.java | 0 src/{ => main/java}/utils/Sounds.java | 0 src/{ => main/java}/utils/Timer.java | 0 src/{ => main/java}/utils/Writes.java | 0 src/{ => main/java}/visuals/Bars.java | 0 src/{ => main/java}/visuals/Circular.java | 0 src/{ => main/java}/visuals/Hoops.java | 0 src/{ => main/java}/visuals/Mesh.java | 0 src/{ => main/java}/visuals/Pixels.java | 0 src/{ => main/java}/visuals/VisualStyles.java | 0 148 files changed, 95 insertions(+), 737 deletions(-) delete mode 100644 .classpath delete mode 100644 .gitattributes delete mode 100644 .project delete mode 100644 .settings/org.eclipse.jdt.core.prefs delete mode 100644 .settings/org.eclipse.jdt.ui.prefs create mode 100644 ArrayVisualizer.iml delete mode 100644 LICENSE delete mode 100644 README.md delete mode 100644 build.xml delete mode 100644 dist/arrayVisualizer.jar delete mode 100644 lib/classgraph-4.8.47-javadoc.jar delete mode 100644 lib/classgraph-4.8.47-sources.jar delete mode 100644 lib/classgraph-4.8.47.jar create mode 100644 pom.xml delete mode 100644 src/SortPrompt.form delete mode 100644 src/UtilFrame.form delete mode 100644 src/ViewPrompt.form rename {bin => src/main/java}/SortPrompt.form (100%) rename {bin => src/main/java}/UtilFrame.form (100%) rename {bin => src/main/java}/ViewPrompt.form (100%) rename src/{ => main/java}/frames/ArrayFrame.java (97%) rename src/{ => main/java}/frames/UtilFrame.java (99%) rename src/main/{ => java/main}/ArrayManager.java (100%) rename src/main/{ => java/main}/ArrayVisualizer.java (99%) rename src/main/{ => java/main}/SortAnalyzer.java (100%) rename src/{ => main/java}/prompts/ShufflePrompt.java (98%) rename src/{ => main/java}/prompts/SortPrompt.java (99%) rename src/{ => main/java}/prompts/ViewPrompt.java (99%) rename src/{ => main/java}/sorts/AmericanFlagSort.java (100%) rename src/{ => main/java}/sorts/BadSort.java (100%) rename src/{ => main/java}/sorts/BinaryGnomeSort.java (100%) rename src/{ => main/java}/sorts/BinaryInsertionSort.java (100%) rename src/{ => main/java}/sorts/BinaryMergeSort.java (100%) rename src/{ => main/java}/sorts/BinaryQuickSort.java (100%) rename src/{ => main/java}/sorts/BitonicSort.java (100%) rename src/{ => main/java}/sorts/BogoSort.java (100%) rename src/{ => main/java}/sorts/BottomUpMergeSort.java (100%) rename src/{ => main/java}/sorts/BranchedPDQSort.java (100%) rename src/{ => main/java}/sorts/BranchlessPDQSort.java (100%) rename src/{ => main/java}/sorts/BubbleBogoSort.java (100%) rename src/{ => main/java}/sorts/BubbleSort.java (100%) rename src/{ => main/java}/sorts/CircleSort.java (100%) rename src/{ => main/java}/sorts/CocktailBogoSort.java (100%) rename src/{ => main/java}/sorts/CocktailMergeSort.java (100%) rename src/{ => main/java}/sorts/CocktailShakerSort.java (100%) rename src/{ => main/java}/sorts/CombSort.java (100%) rename src/{ => main/java}/sorts/CountingSort.java (100%) rename src/{ => main/java}/sorts/CycleSort.java (100%) rename src/{ => main/java}/sorts/DoubleSelectionSort.java (100%) rename src/{ => main/java}/sorts/DualPivotQuickSort.java (100%) rename src/{ => main/java}/sorts/ExchangeBogoSort.java (100%) rename src/{ => main/java}/sorts/FlashSort.java (100%) rename src/{ => main/java}/sorts/GnomeSort.java (100%) rename src/{ => main/java}/sorts/GrailSort.java (100%) rename src/{ => main/java}/sorts/GravitySort.java (100%) rename src/{ => main/java}/sorts/HolyGrailSort.java (100%) rename src/{ => main/java}/sorts/HybridCombSort.java (100%) rename src/{ => main/java}/sorts/InPlaceLSDRadixSort.java (100%) rename src/{ => main/java}/sorts/InPlaceMergeSort.java (100%) rename src/{ => main/java}/sorts/InsertionSort.java (100%) rename src/{ => main/java}/sorts/IntroCircleSort.java (100%) rename src/{ => main/java}/sorts/IntroSort.java (100%) rename src/{ => main/java}/sorts/IterativeBitonicSort.java (100%) rename src/{ => main/java}/sorts/IterativeOddEvenMergeSort.java (100%) rename src/{ => main/java}/sorts/IterativePairwiseSort.java (100%) rename src/{ => main/java}/sorts/LLQuickSort.java (100%) rename src/{ => main/java}/sorts/LRQuickSort.java (100%) rename src/{ => main/java}/sorts/LSDRadixSort.java (100%) rename src/{ => main/java}/sorts/LazyStableSort.java (100%) rename src/{ => main/java}/sorts/LessBogoSort.java (100%) rename src/{ => main/java}/sorts/MSDRadixSort.java (100%) rename src/{ => main/java}/sorts/MaxHeapSort.java (100%) rename src/{ => main/java}/sorts/MergeSort.java (100%) rename src/{ => main/java}/sorts/MinHeapSort.java (100%) rename src/{ => main/java}/sorts/OddEvenMergeSort.java (100%) rename src/{ => main/java}/sorts/OddEvenSort.java (100%) rename src/{ => main/java}/sorts/OptimizedDualPivotQuickSort.java (100%) rename src/{ => main/java}/sorts/PancakeSort.java (100%) rename src/{ => main/java}/sorts/PatienceSort.java (100%) rename src/{ => main/java}/sorts/PigeonholeSort.java (100%) rename src/{ => main/java}/sorts/PoplarHeapSort.java (100%) rename src/{ => main/java}/sorts/RecursiveBinaryQuickSort.java (100%) rename src/{ => main/java}/sorts/RecursiveBitonicSort.java (100%) rename src/{ => main/java}/sorts/RecursiveCombSort.java (100%) rename src/{ => main/java}/sorts/RecursiveOddEvenMergeSort.java (100%) rename src/{ => main/java}/sorts/RecursivePairwiseSort.java (100%) rename src/{ => main/java}/sorts/RotateMergeSort.java (100%) rename src/{ => main/java}/sorts/SelectionSort.java (100%) rename src/{ => main/java}/sorts/ShatterSort.java (100%) rename src/{ => main/java}/sorts/ShellSort.java (100%) rename src/{ => main/java}/sorts/SillySort.java (100%) rename src/{ => main/java}/sorts/SimpleShatterSort.java (100%) rename src/{ => main/java}/sorts/SkaSort.java (100%) rename src/{ => main/java}/sorts/SlowSort.java (100%) rename src/{ => main/java}/sorts/SmartBubbleSort.java (100%) rename src/{ => main/java}/sorts/SmartGnomeSort.java (100%) rename src/{ => main/java}/sorts/SmoothSort.java (100%) rename src/{ => main/java}/sorts/SqrtSort.java (100%) rename src/{ => main/java}/sorts/StableQuickSort.java (100%) rename src/{ => main/java}/sorts/StoogeSort.java (100%) rename src/{ => main/java}/sorts/TernaryHeapSort.java (100%) rename src/{ => main/java}/sorts/TimSort.java (100%) rename src/{ => main/java}/sorts/TimeSort.java (100%) rename src/{ => main/java}/sorts/TournamentSort.java (100%) rename src/{ => main/java}/sorts/TreeSort.java (100%) rename src/{ => main/java}/sorts/WeakHeapSort.java (100%) rename src/{ => main/java}/sorts/WeaveMergeSort.java (100%) rename src/{ => main/java}/sorts/WikiSort.java (100%) rename src/{ => main/java}/templates/BinaryInsertionSorting.java (100%) rename src/{ => main/java}/templates/BinaryQuickSorting.java (100%) rename src/{ => main/java}/templates/BogoSorting.java (100%) rename src/{ => main/java}/templates/CircleSorting.java (100%) rename src/{ => main/java}/templates/CombSorting.java (100%) rename src/{ => main/java}/templates/Frame.java (100%) rename src/{ => main/java}/templates/GrailSorting.java (100%) rename src/{ => main/java}/templates/HeapSorting.java (100%) rename src/{ => main/java}/templates/HolyGrailSorting.java (100%) rename src/{ => main/java}/templates/InsertionSorting.java (100%) rename src/{ => main/java}/templates/MergeSorting.java (100%) rename src/{ => main/java}/templates/MultipleSortThread.java (100%) rename src/{ => main/java}/templates/PDQSorting.java (100%) rename src/{ => main/java}/templates/ShatterSorting.java (100%) rename src/{ => main/java}/templates/ShellSorting.java (100%) rename src/{ => main/java}/templates/Sort.java (100%) rename src/{ => main/java}/templates/TimSorting.java (100%) rename src/{ => main/java}/templates/WikiSorting.java (100%) rename src/{ => main/java}/test/Tester.java (100%) rename src/{ => main/java}/threads/RunAllSorts.java (100%) rename src/{ => main/java}/threads/RunComparisonSort.java (100%) rename src/{ => main/java}/threads/RunDistributionSort.java (100%) rename src/{ => main/java}/threads/RunExchangeSorts.java (100%) rename src/{ => main/java}/threads/RunInsertionSorts.java (100%) rename src/{ => main/java}/threads/RunMergeSorts.java (100%) rename src/{ => main/java}/threads/RunSelectionSorts.java (100%) rename src/{ => main/java}/utils/Delays.java (100%) rename src/{ => main/java}/utils/Highlights.java (100%) rename src/{ => main/java}/utils/Reads.java (100%) rename src/{ => main/java}/utils/Renderer.java (100%) rename src/{ => main/java}/utils/Shuffles.java (100%) rename src/{ => main/java}/utils/Sounds.java (100%) rename src/{ => main/java}/utils/Timer.java (100%) rename src/{ => main/java}/utils/Writes.java (100%) rename src/{ => main/java}/visuals/Bars.java (100%) rename src/{ => main/java}/visuals/Circular.java (100%) rename src/{ => main/java}/visuals/Hoops.java (100%) rename src/{ => main/java}/visuals/Mesh.java (100%) rename src/{ => main/java}/visuals/Pixels.java (100%) rename src/{ => main/java}/visuals/VisualStyles.java (100%) diff --git a/.classpath b/.classpath deleted file mode 100644 index a948582b..00000000 --- a/.classpath +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 412eeda7..00000000 --- a/.gitattributes +++ /dev/null @@ -1,22 +0,0 @@ -# Auto detect text files and perform LF normalization -* text=auto - -# Custom for Visual Studio -*.cs diff=csharp -*.sln merge=union -*.csproj merge=union -*.vbproj merge=union -*.fsproj merge=union -*.dbproj merge=union - -# Standard to msysgit -*.doc diff=astextplain -*.DOC diff=astextplain -*.docx diff=astextplain -*.DOCX diff=astextplain -*.dot diff=astextplain -*.DOT diff=astextplain -*.pdf diff=astextplain -*.PDF diff=astextplain -*.rtf diff=astextplain -*.RTF diff=astextplain diff --git a/.project b/.project deleted file mode 100644 index 09bece30..00000000 --- a/.project +++ /dev/null @@ -1,22 +0,0 @@ - - - ArrayVisualizer-master - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.zeroturnaround.eclipse.rebelXmlBuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 87b7a7a3..00000000 --- a/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,13 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/.settings/org.eclipse.jdt.ui.prefs b/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 7103be72..00000000 --- a/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.ui.text.custom_code_templates= diff --git a/ArrayVisualizer.iml b/ArrayVisualizer.iml new file mode 100644 index 00000000..78b2cc53 --- /dev/null +++ b/ArrayVisualizer.iml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index c8c17f8b..00000000 --- a/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -MIT License - -Copyright (c) 2019 w0rthy -Copyright (c) 2019 MusicTheorist - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md deleted file mode 100644 index e596d4ba..00000000 --- a/README.md +++ /dev/null @@ -1,118 +0,0 @@ -# w0rthy's Array Visualizer, Revamped -[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=Q5QLCFZ8G7WY6¤cy_code=USD&source=url) - -76 sorting algorithms demonstrated through 10 unique graphic designs - -This new version of the program features additions inspired by Timo Bingmann's "The Sound of Sorting" and w0rthy's updates to the original visualizer. - -To build (After -cp, use ";" with Windows and ":" with Mac/Linux): -``` -ant -java -cp bin;lib/classgraph-4.8.47.jar main.ArrayVisualizer -``` - -### Features: -- 40+ new sorting algorithms -- Updated visuals and sound effects -- You can select different array sizes now -- New shuffle types, including reversed, mostly similar numbers, almost sorted, and already sorted -- Skip Sort button -- Softer sounds toggle -- A real time in milliseconds estimate -- Toggle shuffle animation -- Toggle Timo Bingmann's "end sweep" animation -- Refactored / optimized code - -## 10/19/2019 - Version 2.1 -- Both Odd-Even Mergesorts now display comparisons -- PDQSort's Insertion Sorts have been slowed down -- New sorts, courtesy of Piotr Grochowski (https://github.com/PiotrGrochowski/ArrayVisualizer): - - Iterative Pairwise Sorting Network - - Recursive Pairwise Sorting Network - - Recursive Combsort - -## 10/13/2019 - Version 2.0 is now released! -- Now includes 73 sorting algorithms, with 2 more that will be finished in the future - - NEW SORTS: - - Unoptimized Bubble Sort - - Rotation-based In-Place Merge Sort - - "Lazy Stable Sort" from Andrey Astrelin's GrailSort - - Grail sorting with a static buffer - - Grail sorting with a dynamic buffer - - Andrey Astrelin's "SqrtSort" - - CircleSort - - Introspective CircleSort - - Orson Peters' "Pattern-Defeating Quicksort" (PDQSort) - - Branchless PDQSort - - Morween's implementation of "Poplar Heapsort" - - Recursive Binary Quicksort - - Iterative Binary Quicksort - - Iterative Bitonic Sort - - Iterative Odd-Even Mergesort - - "Bubble Bogosort" - - "Exchange Bogosort" - - Treesort - - Optimized Gnomesort with Binary Search - - "Cocktail Mergesort" (https://www.youtube.com/watch?v=fWubJgIWyxQ) - - NOTE: "Quick Shell Sort" has been removed. -- Significantly refactored code, more object-oriented -- Optimized visuals -- the program runs smoother than ever! -- Plug-and-play functionality -- using classgraph, you can now easily add your own sorting algorithms to the program! Documentation on that will be available in the future. -- Sort delay system redesigned -- you can now change the speed of the program in the middle of a delayed compare or swap -- Speed dialogue is now disabled while other windows are open -- WikiSort no longer gets stuck on sorting its internal buffer -- Tweaks to TimSort, mostly reimplementing its binary insertion sort -- Binary Insertion Sort is now stable -- The write/swap counts for inputs already sorted are fixed -- The main/auxillary array write counts for Bottom-up Merge are fixed -- Shuffling the array now clears the statistics -- The highest pitches of the program's sound effects are fixed -- Speeds for the "green sweep" and shuffling animations have been tweaked -- Shatter Sort's highlights slightly tweaked -- GrailSort's highlights slightly tweaked - -**KNOWN BUGS:** -- Certain sorts (comb sort, radix sorts) cause the program to forget the current speed -- Certain sorts do not work with the "Skip Sort" button -- Linked Dots visual has an extra, static line -- Missing soundfont -- SkaSort and HolyGrailSort produce errors -- this is normal, they aren't finished yet -- No circular pointer -- will be fixed soon - -**PLANS FOR FUTURE RELEASES:** -- Javadocs!! -- SkaSort -- "Holy Grail Sort" -- Options to: - - Enter in your own set of numbers - - Select CombSort gap sequence - - Select ShellSort gap sequence - - Change TimSort "minrun" value - - Change IntroSort threshold for insertion/heap sort - - Change Simple Shatter Sort rate(?) - - Stop Run All Sorts(?) - - Stop TimeSort(?) -- Pre-shuffled arrays -- Organize list of sorts into more categories -- Run All Sorts in specific category -- Subheadings for customizable sorts (e.g. display the number of buckets during a bucket sort) -- Justified statistics(??) -- Sort an array up to 16,384 (2^14) numbers -- "Many Similar" distribution ((i/5) * 5, as an example) -- Fixed circular pointer with much cleaner math -- Toogle between pointer and black bar with circular visuals -- Refactor/reorganize prompts and frames -- Cleaner: - - Counting Sort - - Tree Sort - - getters/setters - - method parameters -- Small organizational changes - -**If you are experiencing performance issues in Windows 10, look here: https://superuser.com/questions/988379/how-do-i-run-java-apps-upscaled-on-a-high-dpi-display** - -An executable .jar file is available in the dist folder. Have fun! - -Videos this program is featured in: - -https://www.youtube.com/playlist?list=PL5w_-zMAJC8tSgmfaltMMj7Kn390eRzMq diff --git a/build.xml b/build.xml deleted file mode 100644 index aafdcb33..00000000 --- a/build.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dist/arrayVisualizer.jar b/dist/arrayVisualizer.jar deleted file mode 100644 index 1895434302913e1a3580a350ef30d8ac01b188b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1931989 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