From 3b5714985a7adcc2e3d7fd427b794bc40f385c9c Mon Sep 17 00:00:00 2001 From: anthnoym Date: Thu, 23 Mar 2017 13:58:53 -0500 Subject: [PATCH 01/26] Shell sort --- DSFinal/src/dsfinal/ShellSort.java | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 DSFinal/src/dsfinal/ShellSort.java diff --git a/DSFinal/src/dsfinal/ShellSort.java b/DSFinal/src/dsfinal/ShellSort.java new file mode 100644 index 0000000..ee930e7 --- /dev/null +++ b/DSFinal/src/dsfinal/ShellSort.java @@ -0,0 +1,26 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package dsfinal; + +/** + * + * @author anthnoym + */ +public class ShellSort extends SortingUtils { + + public ShellSort(T[] array, String name) + { + super(array , "Shell Sort"); + } + + public void sort() + { + + } + + + +} From d5fd3dd04edb4024a54884a728d371ba58ec161b Mon Sep 17 00:00:00 2001 From: anthnoym Date: Thu, 23 Mar 2017 14:12:31 -0500 Subject: [PATCH 02/26] Shell sort --- DSFinal/src/dsfinal/ShellSort.java | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/DSFinal/src/dsfinal/ShellSort.java b/DSFinal/src/dsfinal/ShellSort.java index ee930e7..0aad1c1 100644 --- a/DSFinal/src/dsfinal/ShellSort.java +++ b/DSFinal/src/dsfinal/ShellSort.java @@ -19,6 +19,31 @@ public ShellSort(T[] array, String name) public void sort() { + int h = 0; + + for(int i = 0; i < array.length; i++) + { + h = h * 3 + 1; + } + + while(h > 0) + { + for(int outter = h; outter < array.length; outter++) + { + T valueToInsert = array[outter]; + int inner = outter; + + //while (inner > interval - 1 && array[inner - interval] >= valueToInsert) + //{ + + //} + } + } + } + + public void run() + { + super.run(); } From b73a9c850ac2b8c771aabfdaee9bf4c3b76332a8 Mon Sep 17 00:00:00 2001 From: anthnoym Date: Mon, 3 Apr 2017 20:33:02 -0500 Subject: [PATCH 03/26] Shell Sort Done --- DSFinal/src/dsfinal/BubbleSort.java | 2 +- DSFinal/src/dsfinal/DSFinal.java | 21 ----------- DSFinal/src/dsfinal/FinalProjectNB.java | 49 +++++++++++++++---------- DSFinal/src/dsfinal/HeapSort.java | 2 +- DSFinal/src/dsfinal/InsertionSort.java | 2 +- DSFinal/src/dsfinal/MergeSort.java | 2 +- DSFinal/src/dsfinal/QuickSort.java | 2 +- DSFinal/src/dsfinal/SelectionSort.java | 2 +- DSFinal/src/dsfinal/ShellSort.java | 32 ++++++++-------- DSFinal/src/dsfinal/SortingUtils.java | 5 +-- 10 files changed, 54 insertions(+), 65 deletions(-) delete mode 100644 DSFinal/src/dsfinal/DSFinal.java diff --git a/DSFinal/src/dsfinal/BubbleSort.java b/DSFinal/src/dsfinal/BubbleSort.java index dfd60a4..b3aff63 100644 --- a/DSFinal/src/dsfinal/BubbleSort.java +++ b/DSFinal/src/dsfinal/BubbleSort.java @@ -9,7 +9,7 @@ * * @author Anthony */ -public class BubbleSort extends SortingUtils implements Runnable { +public class BubbleSort extends SortingUtils { public BubbleSort(int[] array) { diff --git a/DSFinal/src/dsfinal/DSFinal.java b/DSFinal/src/dsfinal/DSFinal.java deleted file mode 100644 index 4f2a5c8..0000000 --- a/DSFinal/src/dsfinal/DSFinal.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package dsfinal; - -/** - * - * @author anthnoym - */ -public class DSFinal { - - /** - * @param args the command line arguments - */ - public static void main(String[] args) { - // TODO code application logic here - } - -} diff --git a/DSFinal/src/dsfinal/FinalProjectNB.java b/DSFinal/src/dsfinal/FinalProjectNB.java index ff4d315..2fd27a4 100644 --- a/DSFinal/src/dsfinal/FinalProjectNB.java +++ b/DSFinal/src/dsfinal/FinalProjectNB.java @@ -8,52 +8,61 @@ */ package dsfinal; import java.util.ArrayList; +import java.util.Scanner; /** * * @author Anthony */ public class FinalProjectNB { - final static int MAXNUM = 1000000; - public static void main(String[] args) throws InterruptedException { - int[] toBeSorted = new int[MAXNUM]; + Scanner sc = new Scanner(System.in); + ArrayList sorts = new ArrayList<>(); ArrayList finishedSorts = new ArrayList<>(); - System.out.println("Generating random array of " + MAXNUM + " integers"); + System.out.println("Please enter the number of integers you want to sort"); + int MAXNUM = sc.nextInt(); + int[] toBeSorted = new int[MAXNUM]; + + System.out.println("Ready?"); + + + System.out.println("\nGenerating random array of " + MAXNUM + " integers"); for(int i = 0; i < MAXNUM; i++) { toBeSorted[i] = (int)(Math.random() * MAXNUM); } System.out.println("Done generating array"); - + //Create new threads for each sorting alorithm //simple sorts - Runnable selectionRunnable = new SelectionSort(toBeSorted); - sorts.add(new Thread(selectionRunnable, "Selection Sort")); - Runnable bubbleRunnable = new BubbleSort(toBeSorted); - sorts.add(new Thread(bubbleRunnable, "Bubble Sort")); - Runnable insertionRunnable = new InsertionSort(toBeSorted); - sorts.add(new Thread(insertionRunnable, "Insertion Sort")); + //Runnable selectionRunnable = new SelectionSort(toBeSorted); + //sorts.add(new Thread(selectionRunnable, "Selection Sort")); + //Runnable bubbleRunnable = new BubbleSort(toBeSorted); + //sorts.add(new Thread(bubbleRunnable, "Bubble Sort")); + //Runnable insertionRunnable = new InsertionSort(toBeSorted); + //sorts.add(new Thread(insertionRunnable, "Insertion Sort")); + Runnable shellRunnable = new ShellSort(toBeSorted, "Shell Sort"); + sorts.add(new Thread(shellRunnable, "Shell Sort")); + //Complex sorts - Runnable mergeRunnable = new MergeSort(toBeSorted); - sorts.add(new Thread(mergeRunnable, "Merge Sort")); - Runnable quickRunnable = new QuickSort(toBeSorted); - sorts.add(new Thread(quickRunnable, "Quick Sort")); - Runnable heapRunnable = new HeapSort(toBeSorted); - sorts.add(new Thread(heapRunnable, "Heap Sort")); + //Runnable mergeRunnable = new MergeSort(toBeSorted); + //sorts.add(new Thread(mergeRunnable, "Merge Sort")); + //Runnable quickRunnable = new QuickSort(toBeSorted); + //sorts.add(new Thread(quickRunnable, "Quick Sort")); + //Runnable heapRunnable = new HeapSort(toBeSorted); + //sorts.add(new Thread(heapRunnable, "Heap Sort")); System.out.println("\nQuickest Sorts\n"); long startTime = System.nanoTime(); - for(Thread t : sorts) - { + sorts.forEach((t) -> { t.start(); - } + }); //int count = 1; diff --git a/DSFinal/src/dsfinal/HeapSort.java b/DSFinal/src/dsfinal/HeapSort.java index 8fea372..16e75b9 100644 --- a/DSFinal/src/dsfinal/HeapSort.java +++ b/DSFinal/src/dsfinal/HeapSort.java @@ -9,7 +9,7 @@ * * @author Anthony */ -public class HeapSort extends SortingUtils implements Runnable{ +public class HeapSort extends SortingUtils { public HeapSort(int[] array) { diff --git a/DSFinal/src/dsfinal/InsertionSort.java b/DSFinal/src/dsfinal/InsertionSort.java index f42ee45..7a66beb 100644 --- a/DSFinal/src/dsfinal/InsertionSort.java +++ b/DSFinal/src/dsfinal/InsertionSort.java @@ -9,7 +9,7 @@ * * @author Anthony */ -public class InsertionSort extends SortingUtils implements Runnable { +public class InsertionSort extends SortingUtils{ public InsertionSort(int[] array) { diff --git a/DSFinal/src/dsfinal/MergeSort.java b/DSFinal/src/dsfinal/MergeSort.java index e59c34c..4a51979 100644 --- a/DSFinal/src/dsfinal/MergeSort.java +++ b/DSFinal/src/dsfinal/MergeSort.java @@ -9,7 +9,7 @@ * * @author Anthony */ -public class MergeSort extends SortingUtils implements Runnable { +public class MergeSort extends SortingUtils { public MergeSort(int[] array) { diff --git a/DSFinal/src/dsfinal/QuickSort.java b/DSFinal/src/dsfinal/QuickSort.java index 2e192db..210ac0a 100644 --- a/DSFinal/src/dsfinal/QuickSort.java +++ b/DSFinal/src/dsfinal/QuickSort.java @@ -9,7 +9,7 @@ * * @author Anthony */ -public class QuickSort extends SortingUtils implements Runnable { +public class QuickSort extends SortingUtils { public QuickSort(int[] array) { diff --git a/DSFinal/src/dsfinal/SelectionSort.java b/DSFinal/src/dsfinal/SelectionSort.java index 711bd5d..2121e66 100644 --- a/DSFinal/src/dsfinal/SelectionSort.java +++ b/DSFinal/src/dsfinal/SelectionSort.java @@ -9,7 +9,7 @@ * * @author Anthony */ -public class SelectionSort extends SortingUtils implements Runnable { +public class SelectionSort extends SortingUtils { public SelectionSort(int[] array) { diff --git a/DSFinal/src/dsfinal/ShellSort.java b/DSFinal/src/dsfinal/ShellSort.java index 0aad1c1..f2275c6 100644 --- a/DSFinal/src/dsfinal/ShellSort.java +++ b/DSFinal/src/dsfinal/ShellSort.java @@ -1,17 +1,13 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package dsfinal; /** * * @author anthnoym + * code help - www.tutorialspoint.com/data_structures/shell_sort_algorithim.html */ -public class ShellSort extends SortingUtils { +public class ShellSort extends SortingUtils { - public ShellSort(T[] array, String name) + public ShellSort(int[] array, String name) { super(array , "Shell Sort"); } @@ -19,31 +15,37 @@ public ShellSort(T[] array, String name) public void sort() { - int h = 0; + int h = 1; - for(int i = 0; i < array.length; i++) + while(h < array.length/3) { - h = h * 3 + 1; + h = 3*h + 1; } while(h > 0) { for(int outter = h; outter < array.length; outter++) { - T valueToInsert = array[outter]; + int valueToInsert = array[outter]; int inner = outter; - //while (inner > interval - 1 && array[inner - interval] >= valueToInsert) - //{ - - //} + while (inner > h - 1 && array[inner - h] >= valueToInsert) + { + swap(inner,(inner-h)); + inner = inner - h; + } + + array[inner] = valueToInsert; } + + h = (h-1)/3; } } public void run() { super.run(); + System.out.println(super.toString()); } diff --git a/DSFinal/src/dsfinal/SortingUtils.java b/DSFinal/src/dsfinal/SortingUtils.java index 376af89..8d2c317 100644 --- a/DSFinal/src/dsfinal/SortingUtils.java +++ b/DSFinal/src/dsfinal/SortingUtils.java @@ -5,13 +5,13 @@ */ package dsfinal; -import com.sun.org.apache.xpath.internal.axes.SelfIteratorNoPredicate; +//import com.sun.org.apache.xpath.internal.axes.SelfIteratorNoPredicate; /** * * @author Anthony */ -public abstract class SortingUtils { +public abstract class SortingUtils implements Runnable { protected int[] array; protected long swaps; private long startTime; @@ -52,5 +52,4 @@ public String toString() str += "\nNumber of swaps = " + swaps; return str; } - } From 697849bf85f456a4f631e9427f20ae8f8375005f Mon Sep 17 00:00:00 2001 From: anthnoym Date: Mon, 3 Apr 2017 22:17:21 -0500 Subject: [PATCH 04/26] Changes to GUI to make more options for sorting arrays and allows for chosing which sorts you want. --- DSFinal/src/dsfinal/FinalProjectNB.java | 188 ++++++++++++++++++------ DSFinal/src/dsfinal/ShellSort.java | 1 - 2 files changed, 139 insertions(+), 50 deletions(-) diff --git a/DSFinal/src/dsfinal/FinalProjectNB.java b/DSFinal/src/dsfinal/FinalProjectNB.java index 2fd27a4..72bf794 100644 --- a/DSFinal/src/dsfinal/FinalProjectNB.java +++ b/DSFinal/src/dsfinal/FinalProjectNB.java @@ -5,57 +5,71 @@ http://winterbe.com/posts/2015/04/07/java8-concurrency-tutorial-thread-executor-examples/ +Do To +counting sort +comb sort +bucket sort +radix sort +odd even sort +gnome sort +cocktail shaker sort +smooth sort +intro sort + +done +shell sort + */ package dsfinal; import java.util.ArrayList; import java.util.Scanner; +import java.util.StringTokenizer; + /** * * @author Anthony */ public class FinalProjectNB { + final static String[] sortOptions = {"","Bubble","Heap","Insertion","Merge","Quick","Selection","Shell"}; + public static void main(String[] args) throws InterruptedException { Scanner sc = new Scanner(System.in); ArrayList sorts = new ArrayList<>(); - ArrayList finishedSorts = new ArrayList<>(); - + System.out.println("Please enter the number of integers you want to sort"); + System.out.println("Large number (> 100,000) take a long time. Be aware"); int MAXNUM = sc.nextInt(); - int[] toBeSorted = new int[MAXNUM]; - System.out.println("Ready?"); + System.out.println("What type of array would you like to sort"); + System.out.println("1.)Random\n2.)Almost Sorted\n3.)Backwards\n4.)Few Unique\n"); + int arrayType = sc.nextInt(); + int[] toBeSorted = generateArray(arrayType,MAXNUM); - System.out.println("\nGenerating random array of " + MAXNUM + " integers"); - for(int i = 0; i < MAXNUM; i++) - { - toBeSorted[i] = (int)(Math.random() * MAXNUM); - } - System.out.println("Done generating array"); - - //Create new threads for each sorting alorithm - //simple sorts - //Runnable selectionRunnable = new SelectionSort(toBeSorted); - //sorts.add(new Thread(selectionRunnable, "Selection Sort")); - //Runnable bubbleRunnable = new BubbleSort(toBeSorted); - //sorts.add(new Thread(bubbleRunnable, "Bubble Sort")); - //Runnable insertionRunnable = new InsertionSort(toBeSorted); - //sorts.add(new Thread(insertionRunnable, "Insertion Sort")); - Runnable shellRunnable = new ShellSort(toBeSorted, "Shell Sort"); - sorts.add(new Thread(shellRunnable, "Shell Sort")); + System.out.println("\nWhich sorts would you like to compare times for?"); + System.out.println(createListString(sortOptions)); + System.out.println("If your number of ints to be sorted if very large (> 100,000)\n" + +"selecting more than 4 sorts will cause massive slow downs\n" + +"but will still work. Be aware"); + System.out.println("Enter each number with a comma between the numbers"); + sc.nextLine(); //reset scanner - //Complex sorts - //Runnable mergeRunnable = new MergeSort(toBeSorted); - //sorts.add(new Thread(mergeRunnable, "Merge Sort")); - //Runnable quickRunnable = new QuickSort(toBeSorted); - //sorts.add(new Thread(quickRunnable, "Quick Sort")); - //Runnable heapRunnable = new HeapSort(toBeSorted); - //sorts.add(new Thread(heapRunnable, "Heap Sort")); + StringTokenizer st = new StringTokenizer(sc.nextLine(),","); + while(st.hasMoreElements()) + { + try + { + int num = Integer.valueOf(st.nextToken()); + getSort(num,sorts,toBeSorted); + } + catch(Exception e){} + } + System.out.println("\nQuickest Sorts\n"); long startTime = System.nanoTime(); @@ -63,8 +77,6 @@ public static void main(String[] args) throws InterruptedException { sorts.forEach((t) -> { t.start(); }); - - //int count = 1; while(!sorts.isEmpty()) { @@ -72,33 +84,15 @@ public static void main(String[] args) throws InterruptedException { { if(!sorts.get(i).isAlive()) { - //finishedSorts.add(sorts.get(i).getName() + " , " + (System.nanoTime() - startTime) / Math.pow(10,9)); - //System.out.println(count + "). " + sorts.get(i).getName() + " : " + (System.nanoTime() - startTime) / Math.pow(10,9)); sorts.remove(i); - //count++; } } } System.out.println("\nDone sorting all"); long stopTime = System.nanoTime(); - //System.out.println("Elapsed time in seconds : " + (stopTime - startTime)); - - - //for(String str : finishedSorts) - //{ - // System.out.println(str); - //} System.out.println("Elapsed time in seconds : " + (stopTime - startTime) / Math.pow(10,9)); - //t1.join(); - //t1.setName("SelectionSort"); - //System.out.println(t1.getName()); - - //System.out.println(selectionRunnable.toString()); - - - } public static String printArray(int [] array) @@ -111,4 +105,100 @@ public static String printArray(int [] array) return str; } -} + public static void getSort(int toFind, ArrayList arrayList, int[] toBeSorted) + { + switch(toFind) + { + case 6: + Runnable selectionRunnable = new SelectionSort(toBeSorted); + arrayList.add(new Thread(selectionRunnable, "Selection Sort")); + break; + case 1: + Runnable bubbleRunnable = new BubbleSort(toBeSorted); + arrayList.add(new Thread(bubbleRunnable, "Bubble Sort")); + break; + case 3: + Runnable insertionRunnable = new InsertionSort(toBeSorted); + arrayList.add(new Thread(insertionRunnable, "Insertion Sort")); + break; + case 7: + Runnable shellRunnable = new ShellSort(toBeSorted, "Shell Sort"); + arrayList.add(new Thread(shellRunnable, "Shell Sort")); + break; + case 4: + Runnable mergeRunnable = new MergeSort(toBeSorted); + arrayList.add(new Thread(mergeRunnable, "Merge Sort")); + case 5: + Runnable quickRunnable = new QuickSort(toBeSorted); + arrayList.add(new Thread(quickRunnable, "Quick Sort")); + break; + case 2: + Runnable heapRunnable = new HeapSort(toBeSorted); + arrayList.add(new Thread(heapRunnable, "Heap Sort")); + break; + } + } + + public static String createListString(String[] array) + { + String str = ""; + for(int i = 1; i < array.length; i++) + { + str += i + ".)" + array[i] + " "; + if(i % 1 == 0) + { + str += "\n"; + } + } + + return str; + } + + public static int[] generateArray(int type, int max) + { + int[] tBSort = new int[max]; + switch(type) + { + case 1: + //random + System.out.println("\nGenerating random array of " + max + " integers"); + for(int i = 0; i < max; i++) + { + tBSort[i] = (int)(Math.random() * max); + } + break; + case 2: + //backwards + System.out.println("\nGenerating backwards array of " + max + " integers"); + for(int i = 0; i < max; i++) + { + tBSort[max-i] = i; + } + break; + case 3: + //almost sorted + System.out.println("\nGenerating almost sorted array of " + max + " integers"); + for(int i = 0; i < (double)(max * .75) ; i++) + { + tBSort[i] = i; + } + for(int i = 0; i < max/4; i++) + { + tBSort[i] = (int)(Math.random() * max); + } + break; + case 4: + //few unique + for(int i = 0; i < 5; i++) + { + for(int q = 0; q < max/5; q++) + { + //doesn't work yet... + } + } + break; + } + + return tBSort; + } +} \ No newline at end of file diff --git a/DSFinal/src/dsfinal/ShellSort.java b/DSFinal/src/dsfinal/ShellSort.java index f2275c6..a5b15f8 100644 --- a/DSFinal/src/dsfinal/ShellSort.java +++ b/DSFinal/src/dsfinal/ShellSort.java @@ -45,7 +45,6 @@ public void sort() public void run() { super.run(); - System.out.println(super.toString()); } From cc45b99da23be3251f8e735cd747e8f486488db1 Mon Sep 17 00:00:00 2001 From: anthnoym Date: Tue, 4 Apr 2017 13:58:51 -0500 Subject: [PATCH 05/26] Adds comb sort to the list of sorting alorithms. Also changes the gui a bit to allow for easier adding of new sorts. --- DSFinal/src/dsfinal/CombSort.java | 53 ++++++++++++++++ DSFinal/src/dsfinal/FinalProjectNB.java | 81 ++++++++++++++++--------- DSFinal/src/dsfinal/ShellSort.java | 2 +- 3 files changed, 106 insertions(+), 30 deletions(-) create mode 100644 DSFinal/src/dsfinal/CombSort.java diff --git a/DSFinal/src/dsfinal/CombSort.java b/DSFinal/src/dsfinal/CombSort.java new file mode 100644 index 0000000..0d3aefe --- /dev/null +++ b/DSFinal/src/dsfinal/CombSort.java @@ -0,0 +1,53 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package dsfinal; + +/** + * + * @author anthnoym + */ +public class CombSort extends SortingUtils +{ + public CombSort(int[] array) + { + super(array, "Comb Sort"); + } + + public void sort() + { + int gap = array.length; + double shrink = 1.3; + boolean sorted = false; + + while(!sorted) + { + gap = (int)(gap/shrink); + if(gap > 1) + { + sorted = false; + } + else + { + gap = 1; + sorted = true; + } + + for(int i = 0; i + gap < array.length; i++) + { + if(array[i] > array[i+gap]) + { + swap(i,i+gap); + sorted = false; + } + } + } + } + + public void run() + { + super.run(); + } +} diff --git a/DSFinal/src/dsfinal/FinalProjectNB.java b/DSFinal/src/dsfinal/FinalProjectNB.java index 72bf794..2066d04 100644 --- a/DSFinal/src/dsfinal/FinalProjectNB.java +++ b/DSFinal/src/dsfinal/FinalProjectNB.java @@ -31,7 +31,7 @@ */ public class FinalProjectNB { - final static String[] sortOptions = {"","Bubble","Heap","Insertion","Merge","Quick","Selection","Shell"}; + final static String[] sortOptions = {"","Bubble","Comb", "Heap","Insertion","Merge","Quick","Selection","Shell"}; public static void main(String[] args) throws InterruptedException { @@ -107,36 +107,47 @@ public static String printArray(int [] array) public static void getSort(int toFind, ArrayList arrayList, int[] toBeSorted) { - switch(toFind) + if(indexOf(sortOptions,"Selection") == toFind) { - case 6: - Runnable selectionRunnable = new SelectionSort(toBeSorted); - arrayList.add(new Thread(selectionRunnable, "Selection Sort")); - break; - case 1: - Runnable bubbleRunnable = new BubbleSort(toBeSorted); - arrayList.add(new Thread(bubbleRunnable, "Bubble Sort")); - break; - case 3: - Runnable insertionRunnable = new InsertionSort(toBeSorted); - arrayList.add(new Thread(insertionRunnable, "Insertion Sort")); - break; - case 7: - Runnable shellRunnable = new ShellSort(toBeSorted, "Shell Sort"); - arrayList.add(new Thread(shellRunnable, "Shell Sort")); - break; - case 4: - Runnable mergeRunnable = new MergeSort(toBeSorted); - arrayList.add(new Thread(mergeRunnable, "Merge Sort")); - case 5: - Runnable quickRunnable = new QuickSort(toBeSorted); - arrayList.add(new Thread(quickRunnable, "Quick Sort")); - break; - case 2: - Runnable heapRunnable = new HeapSort(toBeSorted); - arrayList.add(new Thread(heapRunnable, "Heap Sort")); - break; + Runnable selectionRunnable = new SelectionSort(toBeSorted); + arrayList.add(new Thread(selectionRunnable, "Selection Sort")); + } + else if(indexOf(sortOptions, "Bubble") == toFind) + { + Runnable bubbleRunnable = new BubbleSort(toBeSorted); + arrayList.add(new Thread(bubbleRunnable, "Bubble Sort")); + } + else if(indexOf(sortOptions, "Insertion") == toFind) + { + Runnable insertionRunnable = new InsertionSort(toBeSorted); + arrayList.add(new Thread(insertionRunnable, "Insertion Sort")); + } + else if(indexOf(sortOptions, "Shell") == toFind) + { + Runnable shellRunnable = new ShellSort(toBeSorted); + arrayList.add(new Thread(shellRunnable, "Shell Sort")); + } + else if(indexOf(sortOptions, "Merge") == toFind) + { + Runnable mergeRunnable = new MergeSort(toBeSorted); + arrayList.add(new Thread(mergeRunnable, "Merge Sort")); + } + else if(indexOf(sortOptions, "Quick") == toFind) + { + Runnable quickRunnable = new QuickSort(toBeSorted); + arrayList.add(new Thread(quickRunnable, "Quick Sort")); + } + else if(indexOf(sortOptions, "Heap") == toFind) + { + Runnable heapRunnable = new HeapSort(toBeSorted); + arrayList.add(new Thread(heapRunnable, "Heap Sort")); } + else if(indexOf(sortOptions, "Comb") == toFind) + { + Runnable combRunnable = new CombSort(toBeSorted); + arrayList.add(new Thread(combRunnable, "Comb Sort")); + } + } public static String createListString(String[] array) @@ -201,4 +212,16 @@ public static int[] generateArray(int type, int max) return tBSort; } + + public static int indexOf(String[] array, String item) + { + for(int i = 1; i < array.length;i++) + { + if(array[i].compareTo(item) == 0) + { + return i; + } + } + return -1; + } } \ No newline at end of file diff --git a/DSFinal/src/dsfinal/ShellSort.java b/DSFinal/src/dsfinal/ShellSort.java index a5b15f8..a3f14cb 100644 --- a/DSFinal/src/dsfinal/ShellSort.java +++ b/DSFinal/src/dsfinal/ShellSort.java @@ -7,7 +7,7 @@ */ public class ShellSort extends SortingUtils { - public ShellSort(int[] array, String name) + public ShellSort(int[] array) { super(array , "Shell Sort"); } From 8bbd2018ab8db868d787dba1c30d16cb7ce2a255 Mon Sep 17 00:00:00 2001 From: anthnoym Date: Thu, 6 Apr 2017 22:39:30 -0500 Subject: [PATCH 06/26] Adds radix sort with some minor code fixes --- DSFinal/src/dsfinal/FinalProjectNB.java | 2 +- DSFinal/src/dsfinal/RadixSort.java | 109 ++++++++++++++++++++++++ 2 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 DSFinal/src/dsfinal/RadixSort.java diff --git a/DSFinal/src/dsfinal/FinalProjectNB.java b/DSFinal/src/dsfinal/FinalProjectNB.java index 2066d04..ad8eabe 100644 --- a/DSFinal/src/dsfinal/FinalProjectNB.java +++ b/DSFinal/src/dsfinal/FinalProjectNB.java @@ -7,7 +7,6 @@ Do To counting sort -comb sort bucket sort radix sort odd even sort @@ -18,6 +17,7 @@ done shell sort +comb sort */ package dsfinal; diff --git a/DSFinal/src/dsfinal/RadixSort.java b/DSFinal/src/dsfinal/RadixSort.java new file mode 100644 index 0000000..e7a6585 --- /dev/null +++ b/DSFinal/src/dsfinal/RadixSort.java @@ -0,0 +1,109 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package dsfinal; +import java.util.Queue; +import java.util.LinkedList; +/** + * + * @author anthnoym + */ +public class RadixSort extends SortingUtils { + + private int digits = 0; + + public RadixSort(int[] array, int numDigits) + { + super(array, "Radix Sort"); + digits = numDigits; + } + + public void sort() + { + sort(array, digits); + } + + public void run() + { + super.run(); + } + + public static void main(String[] args) + { + int[] temp = {5,78,4,5,6,8,23,45,67,56,11}; + + System.out.println("4,5,5,6,8,11,23,45,56,67,78"); + for(int num : sort(temp,2)) + { + System.out.print(num + ","); + } + } + + //additional methods required to run + /** + * + * @param number + * @param k + * @return the digit of a number at k. if not 0 + */ + private static int getDigit(int number, int numDig) + { + if(numDig > number) + { + return 0; + } + + number = (int)(number / Math.pow(10,numDig)); + + return number%10; + } + + private static Queue[] itemsToQueue(int[] nums, int numDig) + { + Queue[] storageQueue = new Queue[10]; + + for(int i = 0; i < storageQueue.length; i++) + { + storageQueue[i] = new LinkedList(); + } + + for(int i = 0; i < nums.length; i++) + { + int digit = getDigit(nums[i],numDig); + storageQueue[digit].add(nums[i]); + } + + return storageQueue; + } + + private static int[] queuesToArray(Queue[] ques, int numVals) + { + int[] temp = new int[numVals]; + int counter = 0; + + for(int i = 0; i < ques.length; i++) + { + while(ques[i].isEmpty() == false) + { + temp[counter] = ques[i].remove(); + counter += 1; + } + } + + return temp; + } + + private static int[] sort(int[] nums,int numDigits) + { + int length = nums.length; + + for(int i = 0; i < numDigits; i++) + { + nums = queuesToArray(itemsToQueue(nums,i), length); + } + + return nums; + } +} From 6cf8f09d49e856594e653141d62249ebe2635ae4 Mon Sep 17 00:00:00 2001 From: anthnoym Date: Fri, 7 Apr 2017 14:06:41 -0500 Subject: [PATCH 07/26] Added cocktail shaker sort, gnome sort with a bubble sort variation and a gnome sort with a insertion sort variation. Minor code fixes --- DSFinal/src/dsfinal/CocktailShakerSort.java | 60 ++++++++++++++++ DSFinal/src/dsfinal/FinalProjectNB.java | 76 +++++++++++++++++---- DSFinal/src/dsfinal/GnomeBubbleSort.java | 43 ++++++++++++ DSFinal/src/dsfinal/GnomeInsertionSort.java | 44 ++++++++++++ DSFinal/src/dsfinal/RadixSort.java | 25 +++++-- DSFinal/src/dsfinal/SortingUtils.java | 15 ++-- 6 files changed, 241 insertions(+), 22 deletions(-) create mode 100644 DSFinal/src/dsfinal/CocktailShakerSort.java create mode 100644 DSFinal/src/dsfinal/GnomeBubbleSort.java create mode 100644 DSFinal/src/dsfinal/GnomeInsertionSort.java diff --git a/DSFinal/src/dsfinal/CocktailShakerSort.java b/DSFinal/src/dsfinal/CocktailShakerSort.java new file mode 100644 index 0000000..5036d32 --- /dev/null +++ b/DSFinal/src/dsfinal/CocktailShakerSort.java @@ -0,0 +1,60 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package dsfinal; + +/** + * + * @author anthnoym + */ +public class CocktailShakerSort extends SortingUtils{ + + public CocktailShakerSort(int[] array) + { + super(array, "Cocktail Shaker Sort"); + } + + public void sort() + { + boolean swapped = false; + do + { + swapped = false; + + for(int i = 0; i < array.length-2; i++) + { + if(array[i] > array[i+1]) + { + swap(i, i+1); + swapped = true; + } + } + + if(!swapped) + { + break; //already sorted + } + + swapped = false; + + for(int i = array.length - 2; i > 0; i--) + { + if(array[i] > array[i+1]) + { + swap(i, i+1); + swapped = true; + } + } + } + while(swapped); + + } + + public void run() + { + super.run(); + //System.out.println(super.toString()); + } +} diff --git a/DSFinal/src/dsfinal/FinalProjectNB.java b/DSFinal/src/dsfinal/FinalProjectNB.java index ad8eabe..1748734 100644 --- a/DSFinal/src/dsfinal/FinalProjectNB.java +++ b/DSFinal/src/dsfinal/FinalProjectNB.java @@ -8,16 +8,16 @@ Do To counting sort bucket sort -radix sort odd even sort gnome sort -cocktail shaker sort smooth sort intro sort done shell sort comb sort +radix +cocktail */ package dsfinal; @@ -31,7 +31,7 @@ */ public class FinalProjectNB { - final static String[] sortOptions = {"","Bubble","Comb", "Heap","Insertion","Merge","Quick","Selection","Shell"}; + final static String[] sortOptions = {"","Bubble","Cocktail Shaker","Comb", "Gnome Bubble", "Gnome Insertion","Heap","Insertion","Merge","Quick","Radix","Selection","Shell"}; public static void main(String[] args) throws InterruptedException { @@ -44,16 +44,18 @@ public static void main(String[] args) throws InterruptedException { int MAXNUM = sc.nextInt(); System.out.println("What type of array would you like to sort"); - System.out.println("1.)Random\n2.)Almost Sorted\n3.)Backwards\n4.)Few Unique\n"); + System.out.println("1.)Random\n2.)Backwards\n3.)Almost Sorted\n4.)Few Unique\n"); int arrayType = sc.nextInt(); int[] toBeSorted = generateArray(arrayType,MAXNUM); + //printMe(toBeSorted); //used for checking if array is generated correctly + System.out.println("\nWhich sorts would you like to compare times for?"); System.out.println(createListString(sortOptions)); System.out.println("If your number of ints to be sorted if very large (> 100,000)\n" +"selecting more than 4 sorts will cause massive slow downs\n" - +"but will still work. Be aware"); + +"and might not provide accurate times, but will still work.\nBe aware"); System.out.println("Enter each number with a comma between the numbers"); sc.nextLine(); //reset scanner @@ -147,7 +149,30 @@ else if(indexOf(sortOptions, "Comb") == toFind) Runnable combRunnable = new CombSort(toBeSorted); arrayList.add(new Thread(combRunnable, "Comb Sort")); } - + else if(indexOf(sortOptions, "Radix") == toFind) + { + Runnable radixRunnable = new RadixSort(toBeSorted, getNumDigits(toBeSorted.length)); + arrayList.add(new Thread(radixRunnable, "Radix Sort")); + } + else if(indexOf(sortOptions, "Cocktail Shaker") == toFind) + { + Runnable cocktailRunnable = new CocktailShakerSort(toBeSorted); + arrayList.add(new Thread(cocktailRunnable, "Cocktail Shaker Sort")); + } + else if(indexOf(sortOptions, "Gnome Bubble") == toFind) + { + Runnable gnomeBubbleRunnable = new GnomeBubbleSort(toBeSorted); + arrayList.add(new Thread(gnomeBubbleRunnable, "Gnome Bubble Sort")); + } + else if(indexOf(sortOptions, "Gnome Insertion") == toFind) + { + Runnable gnomeInsertionRunnable = new GnomeInsertionSort(toBeSorted); + arrayList.add(new Thread(gnomeInsertionRunnable, "Gnome Insertion Sort")); + } + else + { + System.out.println("Could not find " + toFind + "\nSkipping"); + } } public static String createListString(String[] array) @@ -164,7 +189,7 @@ public static String createListString(String[] array) return str; } - + public static int[] generateArray(int type, int max) { int[] tBSort = new int[max]; @@ -183,19 +208,22 @@ public static int[] generateArray(int type, int max) System.out.println("\nGenerating backwards array of " + max + " integers"); for(int i = 0; i < max; i++) { - tBSort[max-i] = i; + tBSort[max-1-i] = i; } break; case 3: //almost sorted System.out.println("\nGenerating almost sorted array of " + max + " integers"); - for(int i = 0; i < (double)(max * .75) ; i++) - { - tBSort[i] = i; - } - for(int i = 0; i < max/4; i++) + for(int i = 0; i < max; i++) { - tBSort[i] = (int)(Math.random() * max); + if(i < (int)(max * .75)) + { + tBSort[i] = i; + } + else + { + tBSort[i] = (int)(Math.random() * max); + } } break; case 4: @@ -224,4 +252,24 @@ public static int indexOf(String[] array, String item) } return -1; } + + private static int getNumDigits(int num) + { + if(num == 0) + { + return 0; + } + else + { + return 1+ getNumDigits(num/10); + } + } + + private static void printMe(int[] nums) + { + for(int i = 0; i < nums.length;i++) + { + System.out.print(nums[i] + ","); + } + } } \ No newline at end of file diff --git a/DSFinal/src/dsfinal/GnomeBubbleSort.java b/DSFinal/src/dsfinal/GnomeBubbleSort.java new file mode 100644 index 0000000..4486a11 --- /dev/null +++ b/DSFinal/src/dsfinal/GnomeBubbleSort.java @@ -0,0 +1,43 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package dsfinal; + +/** + * + * @author anthnoym + */ +public class GnomeBubbleSort extends SortingUtils { + + public GnomeBubbleSort(int[] array) + { + super(array, "Gnome Bubble Sort"); + } + + public void sort() + { + int pos = 0; + + while(pos < array.length) + { + if(pos == 0 || array[pos] >= array[pos - 1]) + { + pos += 1; + } + else + { + swap(pos,pos-1); + pos -= 1; + } + } + } + + public void run() + { + super.run(); + //System.out.println(super.toString()); + } + +} diff --git a/DSFinal/src/dsfinal/GnomeInsertionSort.java b/DSFinal/src/dsfinal/GnomeInsertionSort.java new file mode 100644 index 0000000..e99d66a --- /dev/null +++ b/DSFinal/src/dsfinal/GnomeInsertionSort.java @@ -0,0 +1,44 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package dsfinal; + +/** + * + * @author anthnoym + */ +public class GnomeInsertionSort extends SortingUtils { + + public GnomeInsertionSort(int[] array) + { + super(array, "Gnome Insertion Sort"); + } + + public void sort() + { + for(int i = 1; i < array.length; i++) + { + sortHelper(array, i); + } + } + + private void sortHelper(int[] num, int upperBound) + { + int pos = upperBound; + + while(pos > 0 && array[pos-1] > array[pos]) + { + swap(pos-1,pos); + pos -= 1; + } + } + + public void run() + { + super.run(); + //System.out.println(super.toString()); + } + +} diff --git a/DSFinal/src/dsfinal/RadixSort.java b/DSFinal/src/dsfinal/RadixSort.java index e7a6585..bee7593 100644 --- a/DSFinal/src/dsfinal/RadixSort.java +++ b/DSFinal/src/dsfinal/RadixSort.java @@ -28,16 +28,22 @@ public void sort() public void run() { super.run(); + //toString(); } public static void main(String[] args) { - int[] temp = {5,78,4,5,6,8,23,45,67,56,11}; + int[] temp = new int[50]; - System.out.println("4,5,5,6,8,11,23,45,56,67,78"); - for(int num : sort(temp,2)) + for(int i = 0; i < temp.length; i++) + { + temp[i] = (int)(Math.random() * temp.length); + } + + //System.out.println("4,5,5,6,8,11,23,45,56,67,78"); + for(int num : sort(temp,4)) { - System.out.print(num + ","); + //System.out.print(num + ","); } } @@ -106,4 +112,15 @@ private static int[] sort(int[] nums,int numDigits) return nums; } + + public String toString(int[] array) + { + String str = ""; + for(int temp : array) + { + str += temp + " , "; + } + str += "\nNumber of swaps = " + swaps; + return str; + } } diff --git a/DSFinal/src/dsfinal/SortingUtils.java b/DSFinal/src/dsfinal/SortingUtils.java index 8d2c317..87eb21b 100644 --- a/DSFinal/src/dsfinal/SortingUtils.java +++ b/DSFinal/src/dsfinal/SortingUtils.java @@ -36,10 +36,17 @@ public synchronized void swap(int a, int b) public synchronized void run() { - startTime = System.nanoTime(); - sort(); - endTime = System.nanoTime(); - System.out.println(sortName + " : " + (System.nanoTime() - startTime) / Math.pow(10,9) + " , Number of swaps : " + swaps); + try + { + startTime = System.nanoTime(); + sort(); + endTime = System.nanoTime(); + System.out.println(sortName + " : " + (System.nanoTime() - startTime) / Math.pow(10,9) + " , Number of swaps : " + swaps); + } + catch(Exception e) + { + System.out.println(sortName + " threw an error after " + (System.nanoTime() - startTime) / Math.pow(10,9) + " seconds"); + } } public String toString() From 1e34a4e9fb11587a00150e2549b70fd3124d0859 Mon Sep 17 00:00:00 2001 From: anthnoym Date: Sat, 8 Apr 2017 08:30:13 -0500 Subject: [PATCH 08/26] Added cocktail shaker sort, gnome sort with a bubble sort variation and a gnome sort with a insertion sort variation. Minor code fixes --- DSFinal/src/dsfinal/FinalProjectNB.java | 11 +++-- DSFinal/src/dsfinal/OddEvenSort.java | 53 +++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 DSFinal/src/dsfinal/OddEvenSort.java diff --git a/DSFinal/src/dsfinal/FinalProjectNB.java b/DSFinal/src/dsfinal/FinalProjectNB.java index 1748734..f0975a6 100644 --- a/DSFinal/src/dsfinal/FinalProjectNB.java +++ b/DSFinal/src/dsfinal/FinalProjectNB.java @@ -9,7 +9,6 @@ counting sort bucket sort odd even sort -gnome sort smooth sort intro sort @@ -18,6 +17,7 @@ comb sort radix cocktail +gnome */ package dsfinal; @@ -31,7 +31,7 @@ */ public class FinalProjectNB { - final static String[] sortOptions = {"","Bubble","Cocktail Shaker","Comb", "Gnome Bubble", "Gnome Insertion","Heap","Insertion","Merge","Quick","Radix","Selection","Shell"}; + final static String[] sortOptions = {"","Bubble","Cocktail Shaker","Comb", "Gnome Bubble", "Gnome Insertion","Heap","Insertion","Merge","Odd-Even","Quick","Radix","Selection","Shell"}; public static void main(String[] args) throws InterruptedException { @@ -49,7 +49,7 @@ public static void main(String[] args) throws InterruptedException { int[] toBeSorted = generateArray(arrayType,MAXNUM); - //printMe(toBeSorted); //used for checking if array is generated correctly + printMe(toBeSorted); //used for checking if array is generated correctly System.out.println("\nWhich sorts would you like to compare times for?"); System.out.println(createListString(sortOptions)); @@ -169,6 +169,11 @@ else if(indexOf(sortOptions, "Gnome Insertion") == toFind) Runnable gnomeInsertionRunnable = new GnomeInsertionSort(toBeSorted); arrayList.add(new Thread(gnomeInsertionRunnable, "Gnome Insertion Sort")); } + else if(indexOf(sortOptions, "Odd-Even") == toFind) + { + Runnable oddEvenRunnable = new OddEvenSort(toBeSorted); + arrayList.add(new Thread(oddEvenRunnable, "Odd-Even Sort")); + } else { System.out.println("Could not find " + toFind + "\nSkipping"); diff --git a/DSFinal/src/dsfinal/OddEvenSort.java b/DSFinal/src/dsfinal/OddEvenSort.java new file mode 100644 index 0000000..ed7eec0 --- /dev/null +++ b/DSFinal/src/dsfinal/OddEvenSort.java @@ -0,0 +1,53 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package dsfinal; + +/** + * + * @author anthnoym + */ +public class OddEvenSort extends SortingUtils { + + public OddEvenSort(int[] array) + { + super(array, "Odd-Even Sort"); + } + + public void sort() + { + boolean sorted = false; + + while(!sorted) + { + sorted = true; + for(int i = 1; i < array.length - 1; i += 2) + { + if(array[i] > array[i+1]) + { + swap(i,i+1); + sorted = false; + } + } + + for(int i = 0; i < array.length - 1; i +=2) + { + if(array[i] > array[i+1]) + { + swap(i,i+1); + sorted = false; + } + } + } + } + + public void run() + { + super.run(); + System.out.println(super.toString()); + + } + +} From ac93c5da39bd497e1929851557a79e24bc7f3e70 Mon Sep 17 00:00:00 2001 From: anthonym Date: Mon, 10 Apr 2017 21:27:28 -0500 Subject: [PATCH 09/26] Started working on a graphics representation for the sorting. This is a initial upload with broken code --- DSFinal/src/dsfinal/Panel.java | 37 ++++++++++++++++++++++ DSFinal/src/dsfinal/SelectionSort.java | 20 ++++++++++++ DSFinal/src/dsfinal/SortingUtils.java | 27 ++++++++++++++++ DSFinal/src/dsfinal/main.java | 44 ++++++++++++++++++++++++++ 4 files changed, 128 insertions(+) create mode 100644 DSFinal/src/dsfinal/Panel.java create mode 100644 DSFinal/src/dsfinal/main.java diff --git a/DSFinal/src/dsfinal/Panel.java b/DSFinal/src/dsfinal/Panel.java new file mode 100644 index 0000000..ac8bfb1 --- /dev/null +++ b/DSFinal/src/dsfinal/Panel.java @@ -0,0 +1,37 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package dsfinal; + +import javax.swing.JPanel; +import java.awt.Dimension; +import java.awt.Graphics; + + +/** + * + * @author anthonym + */ +public class Panel extends JPanel { + + + SelectionSort ss; + + public Panel(int width, int height) + { + super(); + super.setPreferredSize(new Dimension(height,width)); + ss = new SelectionSort(new int[0]); + } + + public void paintComponent(Graphics g) + { + //method for repainting + super.paint(g); + ss.drawSort(g); + + } + +} diff --git a/DSFinal/src/dsfinal/SelectionSort.java b/DSFinal/src/dsfinal/SelectionSort.java index 2121e66..99d16b7 100644 --- a/DSFinal/src/dsfinal/SelectionSort.java +++ b/DSFinal/src/dsfinal/SelectionSort.java @@ -5,6 +5,10 @@ */ package dsfinal; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Rectangle; + /** * * @author Anthony @@ -42,6 +46,22 @@ public void run() super.run(); } + public void drawSort(Graphics g) + { + rectArray = new Rectangle[20]; + int[] numArray = genRandom(rectArray.length); + + for(int i = 0; i < rectArray.length; i++) + { + rectArray[i] = new Rectangle(20*i, 400, 50, numArray[i]*15); + } + + for(Rectangle rect: rectArray) + { + drawRect(g,rect,Color.BLUE); + } + } + diff --git a/DSFinal/src/dsfinal/SortingUtils.java b/DSFinal/src/dsfinal/SortingUtils.java index 87eb21b..db6a07b 100644 --- a/DSFinal/src/dsfinal/SortingUtils.java +++ b/DSFinal/src/dsfinal/SortingUtils.java @@ -7,6 +7,11 @@ //import com.sun.org.apache.xpath.internal.axes.SelfIteratorNoPredicate; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Rectangle; + + /** * * @author Anthony @@ -17,6 +22,8 @@ public abstract class SortingUtils implements Runnable { private long startTime; private long endTime; private String sortName; + + protected Rectangle[] rectArray; public SortingUtils(int[] a, String sortName) { @@ -49,6 +56,8 @@ public synchronized void run() } } + public abstract void drawSort(Graphics g); + public String toString() { String str = ""; @@ -59,4 +68,22 @@ public String toString() str += "\nNumber of swaps = " + swaps; return str; } + + public int[] genRandom(int numItems) + { + int[] array = new int[numItems]; + + for(int i = 0; i < numItems; i++) + { + array[i] = (int)(Math.random() * numItems); + } + + return array; + } + + public void drawRect(Graphics g, Rectangle rect, Color c) + { + g.setColor(c); + g.drawRect(rect.x, rect.y, rect.width, rect.height); + } } diff --git a/DSFinal/src/dsfinal/main.java b/DSFinal/src/dsfinal/main.java new file mode 100644 index 0000000..98fac04 --- /dev/null +++ b/DSFinal/src/dsfinal/main.java @@ -0,0 +1,44 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package dsfinal; + +import javax.swing.JFrame; + +/** + * + * @author anthonym + */ +public class main { + final static int screenHeight = 600; + final static int screenWidth = 1000; + + private static JFrame frame; + private static Panel panel = new Panel(screenHeight, screenWidth); + + public static void main(String[] args) + { + frame = new JFrame(); + frame.setTitle("Sorting Comparisons"); + + frame.add(panel); + + frame.setResizable(false); + frame.setFocusable(true); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setVisible(true); + + frame.pack(); + + if(frame.getContentPane().getWidth() > screenWidth) + { + frame.pack(); + } + + panel.repaint(); + + } + +} From 2c7f79917e7e6f332dd2de80f74d4695caa3420b Mon Sep 17 00:00:00 2001 From: Anthony Montalbano Date: Mon, 10 Apr 2017 22:56:11 -0500 Subject: [PATCH 10/26] Changed more GUI stuff. Creates a visualization for the random array but still has broken code. --- DSFinal/src/dsfinal/Block.java | 25 +++++++++ DSFinal/src/dsfinal/Panel.java | 3 +- DSFinal/src/dsfinal/SelectionSort.java | 75 ++++++++++++++++++++++---- DSFinal/src/dsfinal/SortingUtils.java | 26 +++++++-- 4 files changed, 113 insertions(+), 16 deletions(-) create mode 100644 DSFinal/src/dsfinal/Block.java diff --git a/DSFinal/src/dsfinal/Block.java b/DSFinal/src/dsfinal/Block.java new file mode 100644 index 0000000..29aec20 --- /dev/null +++ b/DSFinal/src/dsfinal/Block.java @@ -0,0 +1,25 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package dsfinal; + +import java.awt.Color; +import java.awt.Rectangle; + +/** + * + * @author Anthony + */ +public class Block extends Rectangle { + + protected Color color; + + public Block(int x, int y, int w, int h, Color c) + { + super(x,y,w,h); + this.color = c; + } + +} diff --git a/DSFinal/src/dsfinal/Panel.java b/DSFinal/src/dsfinal/Panel.java index ac8bfb1..2c9b93f 100644 --- a/DSFinal/src/dsfinal/Panel.java +++ b/DSFinal/src/dsfinal/Panel.java @@ -8,6 +8,7 @@ import javax.swing.JPanel; import java.awt.Dimension; import java.awt.Graphics; +import javax.net.ssl.SSLPeerUnverifiedException; /** @@ -29,7 +30,7 @@ public Panel(int width, int height) public void paintComponent(Graphics g) { //method for repainting - super.paint(g); + super.paintComponent(g); ss.drawSort(g); } diff --git a/DSFinal/src/dsfinal/SelectionSort.java b/DSFinal/src/dsfinal/SelectionSort.java index 99d16b7..de0b93f 100644 --- a/DSFinal/src/dsfinal/SelectionSort.java +++ b/DSFinal/src/dsfinal/SelectionSort.java @@ -8,6 +8,8 @@ import java.awt.Color; import java.awt.Graphics; import java.awt.Rectangle; +import java.util.logging.Level; +import java.util.logging.Logger; /** * @@ -46,23 +48,76 @@ public void run() super.run(); } + @Override public void drawSort(Graphics g) { - rectArray = new Rectangle[20]; - int[] numArray = genRandom(rectArray.length); + delay = 5 * (int)(Math.pow(10,8)); //set the delay between updates + + blockArray = new Block[30]; + //numDisplayArray = new Rectangle[rectArray.length]; + int[] numArray = genRandom(blockArray.length); - for(int i = 0; i < rectArray.length; i++) + //Create array of rectangle with a height based on their location in array + for(int i = 0; i < blockArray.length; i++) { - rectArray[i] = new Rectangle(20*i, 400, 50, numArray[i]*15); + blockArray[i] = new Block(30 *i + 50, height - 100, 25, -1 * numArray[i]*15, Color.BLUE); + //numDisplayArray[i] = new Rectangle(30 *i + 50, height - 75, 25, -1 * 30); + } + + //Show initial array + for(int i = 0; i < blockArray.length; i++) + { + drawBlock(g,blockArray[i]); + g.drawString(addZero(numArray[i]), blockArray[i].x+ 6, blockArray[i].y + 20); + long oldTime = System.nanoTime(); + while(oldTime + delay > System.nanoTime()) + { + //do nothing + //kill time + } } - for(Rectangle rect: rectArray) + for(int i = 0; i < blockArray.length; i++) { - drawRect(g,rect,Color.BLUE); + //blockArray[i].color = Color.RED; + drawBlock(g,blockArray[i]); + g.drawString(addZero(numArray[i]), blockArray[i].x+ 6, blockArray[i].y + 20); + } + + /* + //Modified sort from above + for(int i = numArray.length-1; i > 0 ; i--) + { + int index = i; + //color current block + blockArray[i].color = Color.RED; + drawBlock(g, blockArray[i]); + for(int q = i-1; q >= 0 ; q--) + { + //color changing block + blockArray[q].color = Color.RED; + drawBlock(g, blockArray[q]); + + if(numArray[q] > numArray[index]) + { + index = q; + } + else + { + blockArray[q].color = Color.BLUE; + drawBlock(g, blockArray[q]); + } + + Thread.sleep(1000); + } + + if(numArray[i] != numArray[index]) + { + swap(index,i); + blockArray[index].color = Color.BLUE; + blockArray[i].color = Color.BLUE; + } + }*/ } - - - - } diff --git a/DSFinal/src/dsfinal/SortingUtils.java b/DSFinal/src/dsfinal/SortingUtils.java index db6a07b..02d78dc 100644 --- a/DSFinal/src/dsfinal/SortingUtils.java +++ b/DSFinal/src/dsfinal/SortingUtils.java @@ -23,7 +23,11 @@ public abstract class SortingUtils implements Runnable { private long endTime; private String sortName; - protected Rectangle[] rectArray; + protected int delay; + + final int height = 600; + + protected Block[] blockArray; public SortingUtils(int[] a, String sortName) { @@ -75,15 +79,27 @@ public int[] genRandom(int numItems) for(int i = 0; i < numItems; i++) { - array[i] = (int)(Math.random() * numItems); + array[i] = (int)(Math.random() * numItems) + 1; } return array; } - public void drawRect(Graphics g, Rectangle rect, Color c) + public void drawBlock(Graphics g, Block block) + { + g.setColor(block.color); + g.drawRect(block.x, block.y, block.width, block.height); + } + + public String addZero(int num) { - g.setColor(c); - g.drawRect(rect.x, rect.y, rect.width, rect.height); + if(num < 10) + { + return "0" + num; + } + else + { + return num + ""; + } } } From 018bab8d8b2c3dd1622a0c81187e6b2e7ea1ea4a Mon Sep 17 00:00:00 2001 From: anthonym Date: Tue, 11 Apr 2017 14:13:55 -0500 Subject: [PATCH 11/26] Started working on a graphics representation for the sorting. This is a initial upload with broken code --- DSFinal/src/dsfinal/Panel.java | 10 ++- DSFinal/src/dsfinal/SelectionSort.java | 89 ++++++++------------------ DSFinal/src/dsfinal/SortingUtils.java | 37 ++++++++++- DSFinal/src/dsfinal/main.java | 18 +++++- 4 files changed, 85 insertions(+), 69 deletions(-) diff --git a/DSFinal/src/dsfinal/Panel.java b/DSFinal/src/dsfinal/Panel.java index 2c9b93f..f4d014e 100644 --- a/DSFinal/src/dsfinal/Panel.java +++ b/DSFinal/src/dsfinal/Panel.java @@ -24,7 +24,7 @@ public Panel(int width, int height) { super(); super.setPreferredSize(new Dimension(height,width)); - ss = new SelectionSort(new int[0]); + ss = new SelectionSort(new int[0], true); } public void paintComponent(Graphics g) @@ -32,7 +32,13 @@ public void paintComponent(Graphics g) //method for repainting super.paintComponent(g); ss.drawSort(g); - + } + + public void update() + { + ss.resetColor(); + ss.stepSort(ss.iNum, ss.qNum); + System.out.println("Panel update"); } } diff --git a/DSFinal/src/dsfinal/SelectionSort.java b/DSFinal/src/dsfinal/SelectionSort.java index de0b93f..5c206e1 100644 --- a/DSFinal/src/dsfinal/SelectionSort.java +++ b/DSFinal/src/dsfinal/SelectionSort.java @@ -17,9 +17,15 @@ */ public class SelectionSort extends SortingUtils { - public SelectionSort(int[] array) + protected int iNum; + protected int qNum; + protected int indexNum; + + public SelectionSort(int[] array, boolean isGraphic) { - super(array, "Selection Sort"); + super(array, "Selection Sort", isGraphic); + iNum = numArray.length - 1; + qNum = iNum - 1; } @Override @@ -48,76 +54,31 @@ public void run() super.run(); } - @Override - public void drawSort(Graphics g) + public void stepSort(int i, int q) { - delay = 5 * (int)(Math.pow(10,8)); //set the delay between updates - - blockArray = new Block[30]; - //numDisplayArray = new Rectangle[rectArray.length]; - int[] numArray = genRandom(blockArray.length); - - //Create array of rectangle with a height based on their location in array - for(int i = 0; i < blockArray.length; i++) - { - blockArray[i] = new Block(30 *i + 50, height - 100, 25, -1 * numArray[i]*15, Color.BLUE); - //numDisplayArray[i] = new Rectangle(30 *i + 50, height - 75, 25, -1 * 30); - } - - //Show initial array - for(int i = 0; i < blockArray.length; i++) - { - drawBlock(g,blockArray[i]); - g.drawString(addZero(numArray[i]), blockArray[i].x+ 6, blockArray[i].y + 20); - long oldTime = System.nanoTime(); - while(oldTime + delay > System.nanoTime()) - { - //do nothing - //kill time - } - } - - for(int i = 0; i < blockArray.length; i++) - { - //blockArray[i].color = Color.RED; - drawBlock(g,blockArray[i]); - g.drawString(addZero(numArray[i]), blockArray[i].x+ 6, blockArray[i].y + 20); - - } - - /* - //Modified sort from above - for(int i = numArray.length-1; i > 0 ; i--) + if(i > 0) { - int index = i; - //color current block + blockArray[i].color = Color.RED; - drawBlock(g, blockArray[i]); - for(int q = i-1; q >= 0 ; q--) - { - //color changing block - blockArray[q].color = Color.RED; - drawBlock(g, blockArray[q]); - - if(numArray[q] > numArray[index]) + indexNum = i; + if(q >= 0) + { blockArray[q].color = Color.RED; + if(numArray[q] > numArray[indexNum]) { - index = q; + indexNum = q; } - else - { - blockArray[q].color = Color.BLUE; - drawBlock(g, blockArray[q]); - } - - Thread.sleep(1000); + qNum -= 1; } + else + { + qNum = iNum - 1; + iNum -= 1; + } - if(numArray[i] != numArray[index]) + if(numArray[i] != numArray[indexNum]) { - swap(index,i); - blockArray[index].color = Color.BLUE; - blockArray[i].color = Color.BLUE; + //swap(indexNum,i); } - }*/ + } } } diff --git a/DSFinal/src/dsfinal/SortingUtils.java b/DSFinal/src/dsfinal/SortingUtils.java index 02d78dc..b4fa521 100644 --- a/DSFinal/src/dsfinal/SortingUtils.java +++ b/DSFinal/src/dsfinal/SortingUtils.java @@ -28,11 +28,17 @@ public abstract class SortingUtils implements Runnable { final int height = 600; protected Block[] blockArray; + protected int[] numArray; - public SortingUtils(int[] a, String sortName) + public SortingUtils(int[] a, String sortName, boolean isGraphic) { array = a; this.sortName = sortName; + + if(isGraphic) + { + generateRect(); + } } public synchronized void swap(int a, int b) @@ -60,7 +66,14 @@ public synchronized void run() } } - public abstract void drawSort(Graphics g); + public void drawSort(Graphics g) + { + for(int i = 0; i < blockArray.length; i++) + { + drawBlock(g,blockArray[i]); + g.drawString(addZero(numArray[i]), blockArray[i].x+ 6, blockArray[i].y + 20); + } + } public String toString() { @@ -102,4 +115,24 @@ public String addZero(int num) return num + ""; } } + + public void generateRect() + { + blockArray = new Block[30]; + numArray = genRandom(blockArray.length); + + //Create array of rectangle with a height based on their location in array + for(int i = 0; i < blockArray.length; i++) + { + blockArray[i] = new Block(30 *i + 50, height - 100, 25, -1 * numArray[i]*15, Color.GREEN); + } + } + + public void resetColor() + { + for(int i = 0; i < blockArray.length; i++) + { + blockArray[i].color = Color.GREEN; + } + } } diff --git a/DSFinal/src/dsfinal/main.java b/DSFinal/src/dsfinal/main.java index 98fac04..fb4b7be 100644 --- a/DSFinal/src/dsfinal/main.java +++ b/DSFinal/src/dsfinal/main.java @@ -5,7 +5,10 @@ */ package dsfinal; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import javax.swing.JFrame; +import javax.swing.Timer; /** * @@ -18,6 +21,8 @@ public class main { private static JFrame frame; private static Panel panel = new Panel(screenHeight, screenWidth); + private static Timer timer; + public static void main(String[] args) { frame = new JFrame(); @@ -37,8 +42,19 @@ public static void main(String[] args) frame.pack(); } - panel.repaint(); + timer = new Timer(250, new ActionListener() + { + public void actionPerformed(ActionEvent evt) + { + panel.update(); + panel.repaint(); + System.out.println("Loop complete"); + } + }); + + timer.start(); } + } From ab18518016c9b1ea0a07e6e0baa26c3011191fc2 Mon Sep 17 00:00:00 2001 From: anthonym Date: Wed, 12 Apr 2017 19:12:53 -0500 Subject: [PATCH 12/26] Graphical changes --- DSFinal/nbproject/project.properties | 2 +- DSFinal/src/dsfinal/Panel.java | 4 +-- DSFinal/src/dsfinal/SelectionSort.java | 39 ++++++++++++++++++-------- DSFinal/src/dsfinal/SortingUtils.java | 27 ++++++++++++++---- DSFinal/src/dsfinal/main.java | 4 +-- 5 files changed, 54 insertions(+), 22 deletions(-) diff --git a/DSFinal/nbproject/project.properties b/DSFinal/nbproject/project.properties index da1bd5f..958914f 100644 --- a/DSFinal/nbproject/project.properties +++ b/DSFinal/nbproject/project.properties @@ -54,7 +54,7 @@ javadoc.splitindex=true javadoc.use=true javadoc.version=false javadoc.windowtitle= -main.class=dsfinal.DSFinal +main.class=dsfinal.FinalProjectNB manifest.file=manifest.mf meta.inf.dir=${src.dir}/META-INF mkdist.disabled=false diff --git a/DSFinal/src/dsfinal/Panel.java b/DSFinal/src/dsfinal/Panel.java index f4d014e..f97c483 100644 --- a/DSFinal/src/dsfinal/Panel.java +++ b/DSFinal/src/dsfinal/Panel.java @@ -36,9 +36,9 @@ public void paintComponent(Graphics g) public void update() { - ss.resetColor(); + ss.resetColor(ss.iNum, ss.qNum); ss.stepSort(ss.iNum, ss.qNum); - System.out.println("Panel update"); + //System.out.println("Panel update"); } } diff --git a/DSFinal/src/dsfinal/SelectionSort.java b/DSFinal/src/dsfinal/SelectionSort.java index 5c206e1..5d3c1f8 100644 --- a/DSFinal/src/dsfinal/SelectionSort.java +++ b/DSFinal/src/dsfinal/SelectionSort.java @@ -57,28 +57,43 @@ public void run() public void stepSort(int i, int q) { if(i > 0) - { - - blockArray[i].color = Color.RED; - indexNum = i; + { if(q >= 0) - { blockArray[q].color = Color.RED; + { + //indexNum = i; if(numArray[q] > numArray[indexNum]) { indexNum = q; + blockArray[indexNum].color = Color.BLUE; } + else + { + blockArray[q].color = Color.RED; + } + qNum -= 1; } - else - { - qNum = iNum - 1; - iNum -= 1; - } - if(numArray[i] != numArray[indexNum]) + if(q <= 0) { - //swap(indexNum,i); + iNum -= 1; + qNum = iNum - 1; + if(numArray[i] != numArray[indexNum]) + { + swapGraphic(indexNum,i); + System.out.println("Swap"); + System.out.println(i); + System.out.println(indexNum); + } + indexNum = i; } + + } } + + public void drawSort() + { + resetColor(qNum, indexNum); + } } diff --git a/DSFinal/src/dsfinal/SortingUtils.java b/DSFinal/src/dsfinal/SortingUtils.java index b4fa521..3d54976 100644 --- a/DSFinal/src/dsfinal/SortingUtils.java +++ b/DSFinal/src/dsfinal/SortingUtils.java @@ -73,9 +73,11 @@ public void drawSort(Graphics g) drawBlock(g,blockArray[i]); g.drawString(addZero(numArray[i]), blockArray[i].x+ 6, blockArray[i].y + 20); } + + } - public String toString() + public String toString(int[] array) { String str = ""; for(int temp : array) @@ -118,7 +120,7 @@ public String addZero(int num) public void generateRect() { - blockArray = new Block[30]; + blockArray = new Block[10]; numArray = genRandom(blockArray.length); //Create array of rectangle with a height based on their location in array @@ -128,11 +130,26 @@ public void generateRect() } } - public void resetColor() + public void resetColor(int q, int index) { - for(int i = 0; i < blockArray.length; i++) + for(int i = 0 ; i < blockArray.length; i++) { - blockArray[i].color = Color.GREEN; + if(i != index || i == q) + { + blockArray[i].color = Color.green; + } } } + + public void swapGraphic(int a, int b) + { + int temp = numArray[a]; + numArray[a] = numArray[b]; + numArray[b] = temp; + + Block tempBlock = blockArray[a]; + blockArray[a] = blockArray[b]; + blockArray[b] = tempBlock; + + } } diff --git a/DSFinal/src/dsfinal/main.java b/DSFinal/src/dsfinal/main.java index fb4b7be..4e790e1 100644 --- a/DSFinal/src/dsfinal/main.java +++ b/DSFinal/src/dsfinal/main.java @@ -42,13 +42,13 @@ public static void main(String[] args) frame.pack(); } - timer = new Timer(250, new ActionListener() + timer = new Timer(1000, new ActionListener() { public void actionPerformed(ActionEvent evt) { panel.update(); panel.repaint(); - System.out.println("Loop complete"); + //System.out.println("Loop complete"); } }); From b14ec90487dcd04dfd9e698359e5b8cb00b3a94b Mon Sep 17 00:00:00 2001 From: Anthony Montalbano Date: Wed, 12 Apr 2017 20:53:52 -0500 Subject: [PATCH 13/26] Selection sort graphics works --- DSFinal/src/dsfinal/Block.java | 6 ++- DSFinal/src/dsfinal/Panel.java | 11 ++--- DSFinal/src/dsfinal/SelectionSort.java | 68 +++++++++++++------------- DSFinal/src/dsfinal/SortingUtils.java | 15 ++++-- DSFinal/src/dsfinal/main.java | 2 +- 5 files changed, 52 insertions(+), 50 deletions(-) diff --git a/DSFinal/src/dsfinal/Block.java b/DSFinal/src/dsfinal/Block.java index 29aec20..667cd0c 100644 --- a/DSFinal/src/dsfinal/Block.java +++ b/DSFinal/src/dsfinal/Block.java @@ -14,12 +14,14 @@ */ public class Block extends Rectangle { - protected Color color; + public Color color; + protected boolean isSorted; - public Block(int x, int y, int w, int h, Color c) + public Block(int x, int y, int w, int h, Color c,boolean iS) { super(x,y,w,h); this.color = c; + isSorted = iS; } } diff --git a/DSFinal/src/dsfinal/Panel.java b/DSFinal/src/dsfinal/Panel.java index f97c483..a0b7d61 100644 --- a/DSFinal/src/dsfinal/Panel.java +++ b/DSFinal/src/dsfinal/Panel.java @@ -1,10 +1,6 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package dsfinal; +import java.awt.Color; import javax.swing.JPanel; import java.awt.Dimension; import java.awt.Graphics; @@ -25,6 +21,7 @@ public Panel(int width, int height) super(); super.setPreferredSize(new Dimension(height,width)); ss = new SelectionSort(new int[0], true); + super.setBackground(Color.WHITE); } public void paintComponent(Graphics g) @@ -36,8 +33,8 @@ public void paintComponent(Graphics g) public void update() { - ss.resetColor(ss.iNum, ss.qNum); - ss.stepSort(ss.iNum, ss.qNum); + //ss.resetColor(ss.qNum, ss.indexNum); + ss.stepSort(); //System.out.println("Panel update"); } diff --git a/DSFinal/src/dsfinal/SelectionSort.java b/DSFinal/src/dsfinal/SelectionSort.java index 5d3c1f8..209e596 100644 --- a/DSFinal/src/dsfinal/SelectionSort.java +++ b/DSFinal/src/dsfinal/SelectionSort.java @@ -24,8 +24,9 @@ public class SelectionSort extends SortingUtils { public SelectionSort(int[] array, boolean isGraphic) { super(array, "Selection Sort", isGraphic); - iNum = numArray.length - 1; + iNum = numArray.length-1; qNum = iNum - 1; + indexNum = iNum; } @Override @@ -54,46 +55,43 @@ public void run() super.run(); } - public void stepSort(int i, int q) + public void stepSort() { - if(i > 0) - { - if(q >= 0) - { - //indexNum = i; - if(numArray[q] > numArray[indexNum]) - { - indexNum = q; - blockArray[indexNum].color = Color.BLUE; + if(iNum>0){ + blockArray[iNum].color=Color.YELLOW; + if(qNum >= 0){ + if(numArray[qNum] > numArray[indexNum]){ + blockArray[indexNum].color=(indexNum==iNum)?Color.YELLOW: Color.GREEN; + indexNum=qNum; + blockArray[indexNum].color=Color.BLUE; } - else - { - blockArray[q].color = Color.RED; + else{ + blockArray[qNum].color=Color.GREEN; } + } - qNum -= 1; - } - - if(q <= 0) - { - iNum -= 1; - qNum = iNum - 1; - if(numArray[i] != numArray[indexNum]) - { - swapGraphic(indexNum,i); - System.out.println("Swap"); - System.out.println(i); - System.out.println(indexNum); + qNum--; + if(qNum < 0){ + if(numArray[iNum] != numArray[indexNum]){ + swapGraphic(iNum, indexNum); + } + blockArray[iNum].isSorted = true; + iNum--; + qNum=iNum-1; + indexNum=iNum; + for(int i=0; i Date: Wed, 12 Apr 2017 23:39:35 -0500 Subject: [PATCH 14/26] Shell sort vis works but no colors --- DSFinal/src/dsfinal/Panel.java | 13 +++-- DSFinal/src/dsfinal/SelectionSort.java | 14 ++++-- DSFinal/src/dsfinal/ShellSort.java | 68 +++++++++++++++++++++----- DSFinal/src/dsfinal/SortingUtils.java | 9 ++-- DSFinal/src/dsfinal/main.java | 2 +- 5 files changed, 80 insertions(+), 26 deletions(-) diff --git a/DSFinal/src/dsfinal/Panel.java b/DSFinal/src/dsfinal/Panel.java index a0b7d61..5af9b21 100644 --- a/DSFinal/src/dsfinal/Panel.java +++ b/DSFinal/src/dsfinal/Panel.java @@ -15,12 +15,15 @@ public class Panel extends JPanel { SelectionSort ss; + ShellSort shs; public Panel(int width, int height) { super(); super.setPreferredSize(new Dimension(height,width)); - ss = new SelectionSort(new int[0], true); + //ss = new SelectionSort(new int[0], true); + //ss = new SelectionSort(new int[0], true); + shs = new ShellSort(new int[0], true); super.setBackground(Color.WHITE); } @@ -28,14 +31,14 @@ public void paintComponent(Graphics g) { //method for repainting super.paintComponent(g); - ss.drawSort(g); + //ss.drawSort(g); + shs.drawSort(g); } public void update() { - //ss.resetColor(ss.qNum, ss.indexNum); - ss.stepSort(); - //System.out.println("Panel update"); + //ss.stepSort(); + shs.stepSort(); } } diff --git a/DSFinal/src/dsfinal/SelectionSort.java b/DSFinal/src/dsfinal/SelectionSort.java index 209e596..73cc602 100644 --- a/DSFinal/src/dsfinal/SelectionSort.java +++ b/DSFinal/src/dsfinal/SelectionSort.java @@ -24,9 +24,13 @@ public class SelectionSort extends SortingUtils { public SelectionSort(int[] array, boolean isGraphic) { super(array, "Selection Sort", isGraphic); - iNum = numArray.length-1; - qNum = iNum - 1; - indexNum = iNum; + + if(isGraphic) + { + iNum = numArray.length-1; + qNum = iNum - 1; + indexNum = iNum; + } } @Override @@ -58,10 +62,10 @@ public void run() public void stepSort() { if(iNum>0){ - blockArray[iNum].color=Color.YELLOW; + blockArray[iNum].color=Color.GRAY; if(qNum >= 0){ if(numArray[qNum] > numArray[indexNum]){ - blockArray[indexNum].color=(indexNum==iNum)?Color.YELLOW: Color.GREEN; + blockArray[indexNum].color=(indexNum==iNum)?Color.GRAY: Color.GREEN; indexNum=qNum; blockArray[indexNum].color=Color.BLUE; } diff --git a/DSFinal/src/dsfinal/ShellSort.java b/DSFinal/src/dsfinal/ShellSort.java index a3f14cb..38245c3 100644 --- a/DSFinal/src/dsfinal/ShellSort.java +++ b/DSFinal/src/dsfinal/ShellSort.java @@ -1,5 +1,7 @@ package dsfinal; +import java.awt.Color; + /** * * @author anthnoym @@ -7,20 +9,35 @@ */ public class ShellSort extends SortingUtils { - public ShellSort(int[] array) + protected int hNum; + protected int outterNum; + protected int innerNum; + protected int vTINum; + + + public ShellSort(int[] array, boolean isGraphic) { - super(array , "Shell Sort"); + super(array , "Shell Sort", isGraphic); + + if(isGraphic) + { + hNum = 1; + while(hNum < numArray.length/3) + { + hNum = 3*hNum + 1; + } + + outterNum = hNum; + vTINum = numArray[outterNum]; + innerNum = outterNum; + } } public void sort() { - - int h = 1; - + int h = 1; while(h < array.length/3) - { h = 3*h + 1; - } while(h > 0) { @@ -28,16 +45,13 @@ public void sort() { int valueToInsert = array[outter]; int inner = outter; - while (inner > h - 1 && array[inner - h] >= valueToInsert) { swap(inner,(inner-h)); inner = inner - h; } - array[inner] = valueToInsert; } - h = (h-1)/3; } } @@ -47,6 +61,38 @@ public void run() super.run(); } - + public void stepSort() + { + + if(hNum > 0) + { + if(outterNum < numArray.length) + { + if(innerNum > hNum - 1 && numArray[innerNum - hNum] >= vTINum) + { + //blockArray[innerNum].color = Color.BLUE; + //blockArray[innerNum - hNum].color = Color.BLUE; + swapGraphic(innerNum, (innerNum-hNum)); + innerNum = innerNum - hNum; + } + else + { + //System.out.println(outterNum); + numArray[innerNum] = vTINum; + vTINum = numArray[outterNum]; + innerNum = outterNum; + outterNum++; + } + } + + if(outterNum == numArray.length) + { + hNum = (hNum-1)/3; + outterNum = hNum; + //System.out.println(hNum); + } + } + System.out.println(toString(numArray)); + } } diff --git a/DSFinal/src/dsfinal/SortingUtils.java b/DSFinal/src/dsfinal/SortingUtils.java index bd3bf1e..41c9c3c 100644 --- a/DSFinal/src/dsfinal/SortingUtils.java +++ b/DSFinal/src/dsfinal/SortingUtils.java @@ -68,8 +68,8 @@ public synchronized void run() public void drawSort(Graphics g) { - g.setColor(Color.WHITE); - g.drawRect(0, 0, height, 1000); + //g.setColor(Color.WHITE); + //g.drawRect(0, 0, height, 1000); for(int i = 0; i < blockArray.length; i++) { drawBlock(g,blockArray[i]); @@ -122,14 +122,15 @@ public String addZero(int num) public void generateRect() { - int numlength = 10; + int numlength = 25; blockArray = new Block[numlength]; numArray = genRandom(blockArray.length); + //numArray = new int[]{2,8,11,17,1,4,2,12,12,7,17,18,10,2,6,1,3,20,7,16}; //Create array of rectangle with a height based on their location in array for(int i = 0; i < blockArray.length; i++) { - blockArray[i] = new Block(30 *i + 50, height - 100, 25, -1 * numArray[i]*15, Color.GREEN, false); + blockArray[i] = new Block(30 *i + 50, height - 100, 25, -1 * numArray[i]*10, Color.GREEN, false); } } diff --git a/DSFinal/src/dsfinal/main.java b/DSFinal/src/dsfinal/main.java index ad27d73..8052815 100644 --- a/DSFinal/src/dsfinal/main.java +++ b/DSFinal/src/dsfinal/main.java @@ -42,7 +42,7 @@ public static void main(String[] args) frame.pack(); } - timer = new Timer(500, new ActionListener() + timer = new Timer(75, new ActionListener() { public void actionPerformed(ActionEvent evt) { From b403698cc58b980dee292183bec6478cc4f77729 Mon Sep 17 00:00:00 2001 From: anthonym Date: Thu, 13 Apr 2017 14:14:17 -0500 Subject: [PATCH 15/26] Graphical changes --- DSFinal/src/dsfinal/Block.java | 30 +++++++++++++++++++++++-- DSFinal/src/dsfinal/FinalProjectNB.java | 4 ++-- DSFinal/src/dsfinal/Panel.java | 3 +-- DSFinal/src/dsfinal/ShellSort.java | 20 ++++++++++++++--- DSFinal/src/dsfinal/SortingUtils.java | 21 +++++++++-------- 5 files changed, 58 insertions(+), 20 deletions(-) diff --git a/DSFinal/src/dsfinal/Block.java b/DSFinal/src/dsfinal/Block.java index 667cd0c..b8f404d 100644 --- a/DSFinal/src/dsfinal/Block.java +++ b/DSFinal/src/dsfinal/Block.java @@ -6,6 +6,7 @@ package dsfinal; import java.awt.Color; +import java.awt.Graphics; import java.awt.Rectangle; /** @@ -14,14 +15,39 @@ */ public class Block extends Rectangle { + final int blockMulti = 15; + public Color color; protected boolean isSorted; + protected int value; - public Block(int x, int y, int w, int h, Color c,boolean iS) + public Block(int x, int y, int w, int value, Color c,boolean iS) { - super(x,y,w,h); + super(x,y,w,value); + //super.height = value * blockMulti; this.color = c; isSorted = iS; + this.value = value; + } + + public void drawBlock(Graphics g) + { + g.setColor(color); + g.drawRect(super.x, super.y - (value * blockMulti), super.width, (value * blockMulti)); + //g.fillRect(super.x, super.y, super.width, value * blockMulti); + g.drawString(addZero(value), x+ 6, y + 20); + } + + public String addZero(int num) + { + if(num < 10) + { + return "0" + num; + } + else + { + return num + ""; + } } } diff --git a/DSFinal/src/dsfinal/FinalProjectNB.java b/DSFinal/src/dsfinal/FinalProjectNB.java index f0975a6..8f13bf0 100644 --- a/DSFinal/src/dsfinal/FinalProjectNB.java +++ b/DSFinal/src/dsfinal/FinalProjectNB.java @@ -111,7 +111,7 @@ public static void getSort(int toFind, ArrayList arrayList, int[] toBeSo { if(indexOf(sortOptions,"Selection") == toFind) { - Runnable selectionRunnable = new SelectionSort(toBeSorted); + Runnable selectionRunnable = new SelectionSort(toBeSorted,false); arrayList.add(new Thread(selectionRunnable, "Selection Sort")); } else if(indexOf(sortOptions, "Bubble") == toFind) @@ -126,7 +126,7 @@ else if(indexOf(sortOptions, "Insertion") == toFind) } else if(indexOf(sortOptions, "Shell") == toFind) { - Runnable shellRunnable = new ShellSort(toBeSorted); + Runnable shellRunnable = new ShellSort(toBeSorted,false); arrayList.add(new Thread(shellRunnable, "Shell Sort")); } else if(indexOf(sortOptions, "Merge") == toFind) diff --git a/DSFinal/src/dsfinal/Panel.java b/DSFinal/src/dsfinal/Panel.java index 5af9b21..4f20e4f 100644 --- a/DSFinal/src/dsfinal/Panel.java +++ b/DSFinal/src/dsfinal/Panel.java @@ -21,8 +21,7 @@ public Panel(int width, int height) { super(); super.setPreferredSize(new Dimension(height,width)); - //ss = new SelectionSort(new int[0], true); - //ss = new SelectionSort(new int[0], true); + ss = new SelectionSort(new int[0], true); shs = new ShellSort(new int[0], true); super.setBackground(Color.WHITE); } diff --git a/DSFinal/src/dsfinal/ShellSort.java b/DSFinal/src/dsfinal/ShellSort.java index 38245c3..7dca18f 100644 --- a/DSFinal/src/dsfinal/ShellSort.java +++ b/DSFinal/src/dsfinal/ShellSort.java @@ -33,6 +33,15 @@ public ShellSort(int[] array, boolean isGraphic) } } + public static void main (String [] args) + { + int[] tempArray = new int[]{2,8,11,17,1,4,2,12,12,7,17,18,10,2,6,1,3,20,7,16}; + ShellSort ss = new ShellSort(tempArray, false); + System.out.println(ss.toString(tempArray)); + ss.sort(); + System.out.println(ss.toString(tempArray)); + } + public void sort() { int h = 1; @@ -79,13 +88,18 @@ public void stepSort() { //System.out.println(outterNum); numArray[innerNum] = vTINum; - vTINum = numArray[outterNum]; - innerNum = outterNum; outterNum++; + if(outterNum < numArray.length) + { + vTINum = numArray[outterNum]; + innerNum = outterNum; + } + } + } - if(outterNum == numArray.length) + if(outterNum >= numArray.length) { hNum = (hNum-1)/3; outterNum = hNum; diff --git a/DSFinal/src/dsfinal/SortingUtils.java b/DSFinal/src/dsfinal/SortingUtils.java index 41c9c3c..a61bd22 100644 --- a/DSFinal/src/dsfinal/SortingUtils.java +++ b/DSFinal/src/dsfinal/SortingUtils.java @@ -72,8 +72,7 @@ public void drawSort(Graphics g) //g.drawRect(0, 0, height, 1000); for(int i = 0; i < blockArray.length; i++) { - drawBlock(g,blockArray[i]); - g.drawString(addZero(numArray[i]), blockArray[i].x+ 6, blockArray[i].y + 20); + blockArray[i].drawBlock(g); } @@ -102,12 +101,6 @@ public int[] genRandom(int numItems) return array; } - public void drawBlock(Graphics g, Block block) - { - g.setColor(block.color); - g.drawRect(block.x, block.y, block.width, block.height); - } - public String addZero(int num) { if(num < 10) @@ -122,7 +115,7 @@ public String addZero(int num) public void generateRect() { - int numlength = 25; + int numlength = 30; blockArray = new Block[numlength]; numArray = genRandom(blockArray.length); //numArray = new int[]{2,8,11,17,1,4,2,12,12,7,17,18,10,2,6,1,3,20,7,16}; @@ -130,7 +123,8 @@ public void generateRect() //Create array of rectangle with a height based on their location in array for(int i = 0; i < blockArray.length; i++) { - blockArray[i] = new Block(30 *i + 50, height - 100, 25, -1 * numArray[i]*10, Color.GREEN, false); + //blockArray[i] = new Block(30 *i + 50, height - 100, 25, -1 * numArray[i], Color.GREEN, false); + blockArray[i] = new Block(30*i+50, height-100, 25, numArray[i], Color.GREEN, false); } } @@ -151,11 +145,16 @@ public void swapGraphic(int a, int b) numArray[a] = numArray[b]; numArray[b] = temp; + /* Block tempBlock = blockArray[a]; int tempAX=blockArray[a].x, tempBX=blockArray[b].x; blockArray[a] = blockArray[b]; blockArray[a].x = tempAX; blockArray[b] = tempBlock; - blockArray[b].x = tempBX; + blockArray[b].x = tempBX;*/ + + int tempValue = blockArray[a].value; + blockArray[a].value = blockArray[b].value; + blockArray[b].value = tempValue; } } From cc6e61bfbc1300a6b465aa2cb4c4bd59341aef26 Mon Sep 17 00:00:00 2001 From: anthonym Date: Thu, 13 Apr 2017 22:56:16 -0500 Subject: [PATCH 16/26] Graphical changes --- DSFinal/src/dsfinal/Block.java | 3 +- DSFinal/src/dsfinal/CocktailShakerSort.java | 53 +++++++++++++++++- DSFinal/src/dsfinal/Panel.java | 8 ++- DSFinal/src/dsfinal/ShellSort.java | 61 ++++++++++++++++++--- DSFinal/src/dsfinal/SortingUtils.java | 9 +-- DSFinal/src/dsfinal/main.java | 12 ++-- 6 files changed, 119 insertions(+), 27 deletions(-) diff --git a/DSFinal/src/dsfinal/Block.java b/DSFinal/src/dsfinal/Block.java index b8f404d..4622ec2 100644 --- a/DSFinal/src/dsfinal/Block.java +++ b/DSFinal/src/dsfinal/Block.java @@ -15,7 +15,7 @@ */ public class Block extends Rectangle { - final int blockMulti = 15; + final int blockMulti = 10; public Color color; protected boolean isSorted; @@ -24,7 +24,6 @@ public class Block extends Rectangle { public Block(int x, int y, int w, int value, Color c,boolean iS) { super(x,y,w,value); - //super.height = value * blockMulti; this.color = c; isSorted = iS; this.value = value; diff --git a/DSFinal/src/dsfinal/CocktailShakerSort.java b/DSFinal/src/dsfinal/CocktailShakerSort.java index 5036d32..6abf8dd 100644 --- a/DSFinal/src/dsfinal/CocktailShakerSort.java +++ b/DSFinal/src/dsfinal/CocktailShakerSort.java @@ -11,9 +11,20 @@ */ public class CocktailShakerSort extends SortingUtils{ - public CocktailShakerSort(int[] array) + protected int iNum; + protected int iNumTwo; + protected boolean swappedBol; + + public CocktailShakerSort(int[] array, boolean isGraphic) { - super(array, "Cocktail Shaker Sort"); + super(array, "Cocktail Shaker Sort", isGraphic); + + if(isGraphic) + { + swappedBol = false; + iNum = 0; + iNumTwo = blockArray.length - 2; + } } public void sort() @@ -52,6 +63,44 @@ public void sort() } + public void stepSort() + { + if(iNum < blockArray.length - 2) + { + if(blockArray[iNum].value > blockArray[iNum + 1].value) + { + swapGraphic(iNum, iNum + 1); + swappedBol = true; + System.out.println("Swap forward"); + } + iNum++; + } + + if(iNum >= blockArray.length - 2) + { + if(true) + { + if(iNumTwo > 0) + { + if(blockArray[iNum].value > blockArray[iNum + 1].value) + { + swapGraphic(iNum, iNum + 1); + swappedBol = true; + System.out.println("Swap backward"); + } + iNumTwo--; + } + } + } + + if(iNumTwo <= 0) + { + iNum = 0; + iNumTwo = blockArray.length - 2; + } + //System.out.println(toString(numArray)); + } + public void run() { super.run(); diff --git a/DSFinal/src/dsfinal/Panel.java b/DSFinal/src/dsfinal/Panel.java index 4f20e4f..23798fb 100644 --- a/DSFinal/src/dsfinal/Panel.java +++ b/DSFinal/src/dsfinal/Panel.java @@ -16,6 +16,7 @@ public class Panel extends JPanel { SelectionSort ss; ShellSort shs; + CocktailShakerSort css; public Panel(int width, int height) { @@ -23,6 +24,7 @@ public Panel(int width, int height) super.setPreferredSize(new Dimension(height,width)); ss = new SelectionSort(new int[0], true); shs = new ShellSort(new int[0], true); + css = new CocktailShakerSort(new int[0], true); super.setBackground(Color.WHITE); } @@ -31,13 +33,15 @@ public void paintComponent(Graphics g) //method for repainting super.paintComponent(g); //ss.drawSort(g); - shs.drawSort(g); + //shs.drawSort(g); + css.drawSort(g); } public void update() { //ss.stepSort(); - shs.stepSort(); + //shs.stepSort(); + css.stepSort(); } } diff --git a/DSFinal/src/dsfinal/ShellSort.java b/DSFinal/src/dsfinal/ShellSort.java index 7dca18f..c7985f3 100644 --- a/DSFinal/src/dsfinal/ShellSort.java +++ b/DSFinal/src/dsfinal/ShellSort.java @@ -13,6 +13,7 @@ public class ShellSort extends SortingUtils { protected int outterNum; protected int innerNum; protected int vTINum; + protected int compNum; public ShellSort(int[] array, boolean isGraphic) @@ -30,6 +31,7 @@ public ShellSort(int[] array, boolean isGraphic) outterNum = hNum; vTINum = numArray[outterNum]; innerNum = outterNum; + compNum = 0; } } @@ -72,21 +74,31 @@ public void run() public void stepSort() { - if(hNum > 0) { if(outterNum < numArray.length) - { + { + + for(int i = 0; i < blockArray.length; i++) + { + blockArray[i].color = Color.green; + } + + if(innerNum > hNum - 1) + { + blockArray[innerNum].color = Color.RED; + blockArray[innerNum - hNum].color = Color.RED; + } + if(innerNum > hNum - 1 && numArray[innerNum - hNum] >= vTINum) - { - //blockArray[innerNum].color = Color.BLUE; - //blockArray[innerNum - hNum].color = Color.BLUE; + { + blockArray[innerNum].color = Color.BLUE; + blockArray[innerNum - hNum].color = Color.BLUE; swapGraphic(innerNum, (innerNum-hNum)); innerNum = innerNum - hNum; } else { - //System.out.println(outterNum); numArray[innerNum] = vTINum; outterNum++; if(outterNum < numArray.length) @@ -103,10 +115,43 @@ public void stepSort() { hNum = (hNum-1)/3; outterNum = hNum; - //System.out.println(hNum); } } - System.out.println(toString(numArray)); + else + { + System.out.println(compNum); + if(compNum == 0) + { + for(int i = 0; i < blockArray.length; i++) + { + blockArray[i].color = Color.green; + } + blockArray[0].color = Color.RED; + compNum++; + } + else if(compNum >= 1 && compNum < blockArray.length-1) + { + //if((blockArray[compNum].value == blockArray[compNum+1].value) || + // (blockArray[compNum].value > blockArray[compNum-1].value + //|| blockArray[compNum].value < blockArray[compNum+1].value)) + if((blockArray[compNum].value >= blockArray[compNum-1].value) + & (blockArray[compNum].value <= blockArray[compNum+1].value)) + { + blockArray[compNum + 1].color = Color.RED; + blockArray[compNum].color = Color.orange; + compNum++; + } + } + + if(blockArray[1].color == Color.ORANGE) + { + blockArray[0].color = Color.ORANGE; + } + if(blockArray[blockArray.length-2].color == Color.ORANGE) + { + blockArray[blockArray.length -1].color = Color.ORANGE; + } + } } } diff --git a/DSFinal/src/dsfinal/SortingUtils.java b/DSFinal/src/dsfinal/SortingUtils.java index a61bd22..1ac0fe2 100644 --- a/DSFinal/src/dsfinal/SortingUtils.java +++ b/DSFinal/src/dsfinal/SortingUtils.java @@ -68,8 +68,6 @@ public synchronized void run() public void drawSort(Graphics g) { - //g.setColor(Color.WHITE); - //g.drawRect(0, 0, height, 1000); for(int i = 0; i < blockArray.length; i++) { blockArray[i].drawBlock(g); @@ -128,14 +126,11 @@ public void generateRect() } } - public void resetColor(int q, int index) + public void resetColor() { for(int i = 0; i < blockArray.length; i++) { - if(i != index || i != q) - { - blockArray[i].color = Color.green; - } + blockArray[i].color = Color.GREEN; } } diff --git a/DSFinal/src/dsfinal/main.java b/DSFinal/src/dsfinal/main.java index 8052815..daa1542 100644 --- a/DSFinal/src/dsfinal/main.java +++ b/DSFinal/src/dsfinal/main.java @@ -19,7 +19,7 @@ public class main { final static int screenWidth = 1000; private static JFrame frame; - private static Panel panel = new Panel(screenHeight, screenWidth); + private static Panel sortPanel = new Panel(screenHeight, screenWidth); private static Timer timer; @@ -27,8 +27,9 @@ public static void main(String[] args) { frame = new JFrame(); frame.setTitle("Sorting Comparisons"); + //frame.setLayout(new Boarderlayout()); - frame.add(panel); + frame.add(sortPanel); frame.setResizable(false); frame.setFocusable(true); @@ -42,13 +43,12 @@ public static void main(String[] args) frame.pack(); } - timer = new Timer(75, new ActionListener() + timer = new Timer(300, new ActionListener() { public void actionPerformed(ActionEvent evt) { - panel.update(); - panel.repaint(); - //System.out.println("Loop complete"); + sortPanel.update(); + sortPanel.repaint(); } }); From 66010c877228d04f7ed8ab4b11847e996da75a50 Mon Sep 17 00:00:00 2001 From: anthonym Date: Fri, 14 Apr 2017 00:06:31 -0500 Subject: [PATCH 17/26] Graphical changes --- DSFinal/src/dsfinal/Block.java | 4 +- DSFinal/src/dsfinal/CocktailShakerSort.java | 85 ++++++++++++++++----- DSFinal/src/dsfinal/main.java | 2 +- 3 files changed, 70 insertions(+), 21 deletions(-) diff --git a/DSFinal/src/dsfinal/Block.java b/DSFinal/src/dsfinal/Block.java index 4622ec2..109463b 100644 --- a/DSFinal/src/dsfinal/Block.java +++ b/DSFinal/src/dsfinal/Block.java @@ -32,8 +32,8 @@ public Block(int x, int y, int w, int value, Color c,boolean iS) public void drawBlock(Graphics g) { g.setColor(color); - g.drawRect(super.x, super.y - (value * blockMulti), super.width, (value * blockMulti)); - //g.fillRect(super.x, super.y, super.width, value * blockMulti); + //g.drawRect(super.x, super.y - (value * blockMulti), super.width, (value * blockMulti)); + g.fillRect(super.x, super.y - (value * blockMulti), super.width, (value * blockMulti)); g.drawString(addZero(value), x+ 6, y + 20); } diff --git a/DSFinal/src/dsfinal/CocktailShakerSort.java b/DSFinal/src/dsfinal/CocktailShakerSort.java index 6abf8dd..db9544e 100644 --- a/DSFinal/src/dsfinal/CocktailShakerSort.java +++ b/DSFinal/src/dsfinal/CocktailShakerSort.java @@ -5,6 +5,8 @@ */ package dsfinal; +import java.awt.Color; + /** * * @author anthnoym @@ -14,6 +16,8 @@ public class CocktailShakerSort extends SortingUtils{ protected int iNum; protected int iNumTwo; protected boolean swappedBol; + protected int loops; + protected boolean running; public CocktailShakerSort(int[] array, boolean isGraphic) { @@ -24,6 +28,8 @@ public CocktailShakerSort(int[] array, boolean isGraphic) swappedBol = false; iNum = 0; iNumTwo = blockArray.length - 2; + loops = 0; + running = true; } } @@ -65,38 +71,81 @@ public void sort() public void stepSort() { - if(iNum < blockArray.length - 2) + if(running) { - if(blockArray[iNum].value > blockArray[iNum + 1].value) + if(iNum < blockArray.length - 2) { - swapGraphic(iNum, iNum + 1); - swappedBol = true; - System.out.println("Swap forward"); + for (Block blockArray1 : blockArray) { + if (blockArray1.isSorted) { + blockArray1.color = Color.ORANGE; + } else { + blockArray1.color = Color.green; + } + } + blockArray[iNum].color = Color.RED; + blockArray[iNum + 1].color = Color.RED; + + if(blockArray[iNum].value > blockArray[iNum + 1].value) + { + blockArray[iNum].color = Color.BLUE; + blockArray[iNum + 1].color = Color.BLUE; + swapGraphic(iNum, iNum + 1); + swappedBol = true; + //System.out.println("Swap forward"); + } + iNum++; } - iNum++; - } - - if(iNum >= blockArray.length - 2) - { - if(true) + + if(iNum >= blockArray.length - 2-loops) { + if(iNumTwo <= blockArray.length - 2) + swappedBol = false; + if(iNumTwo > 0) { - if(blockArray[iNum].value > blockArray[iNum + 1].value) + for (Block blockArray1 : blockArray) { + if (blockArray1.isSorted) { + blockArray1.color = Color.ORANGE; + } else { + blockArray1.color = Color.green; + } + } + + blockArray[iNumTwo].color = Color.RED; + blockArray[iNumTwo + 1].color = Color.RED; + + if(blockArray[iNumTwo].value > blockArray[iNumTwo + 1].value) { - swapGraphic(iNum, iNum + 1); + blockArray[iNumTwo].color = Color.BLUE; + blockArray[iNumTwo + 1].color = Color.BLUE; + swapGraphic(iNumTwo, iNumTwo + 1); swappedBol = true; - System.out.println("Swap backward"); } iNumTwo--; } } + + if(iNumTwo <= 0 + loops) + { + if(!swappedBol && iNum <= blockArray.length - 2 - loops && iNumTwo >= 0 + loops) + { + //running = false; + } + + blockArray[iNum+1-loops].isSorted = true; + blockArray[iNumTwo].isSorted = true; + + iNum = loops; + iNumTwo = blockArray.length - 2 - loops; + loops++; + + + swappedBol = false; + } } - - if(iNumTwo <= 0) + else { - iNum = 0; - iNumTwo = blockArray.length - 2; + System.out.println("Already sorted"); } //System.out.println(toString(numArray)); } diff --git a/DSFinal/src/dsfinal/main.java b/DSFinal/src/dsfinal/main.java index daa1542..cb32799 100644 --- a/DSFinal/src/dsfinal/main.java +++ b/DSFinal/src/dsfinal/main.java @@ -43,7 +43,7 @@ public static void main(String[] args) frame.pack(); } - timer = new Timer(300, new ActionListener() + timer = new Timer(10, new ActionListener() { public void actionPerformed(ActionEvent evt) { From 1a28fcc298658389bd1989b022ff7939f0a29fa3 Mon Sep 17 00:00:00 2001 From: anthonym Date: Fri, 14 Apr 2017 20:48:18 -0500 Subject: [PATCH 18/26] Graphical changes --- DSFinal/src/dsfinal/CocktailShakerSort.java | 14 +++++++++++++- DSFinal/src/dsfinal/Panel.java | 6 +++++- DSFinal/src/dsfinal/main.java | 2 ++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/DSFinal/src/dsfinal/CocktailShakerSort.java b/DSFinal/src/dsfinal/CocktailShakerSort.java index db9544e..4453bcd 100644 --- a/DSFinal/src/dsfinal/CocktailShakerSort.java +++ b/DSFinal/src/dsfinal/CocktailShakerSort.java @@ -95,6 +95,16 @@ public void stepSort() } iNum++; } + + if(iNum >= blockArray.length -2) + { + if(swappedBol == false) + { + running = false; + } + } + + if(iNum >= blockArray.length - 2-loops) { @@ -127,9 +137,11 @@ public void stepSort() if(iNumTwo <= 0 + loops) { - if(!swappedBol && iNum <= blockArray.length - 2 - loops && iNumTwo >= 0 + loops) + if(swappedBol == false && iNum <= blockArray.length - 2 - loops && iNumTwo >= 0 + loops) { //running = false; + //blockArray[iNum+1].color = Color.YELLOW; + //blockArray[iNumTwo+2].color = Color.YELLOW; } blockArray[iNum+1-loops].isSorted = true; diff --git a/DSFinal/src/dsfinal/Panel.java b/DSFinal/src/dsfinal/Panel.java index 23798fb..552f1be 100644 --- a/DSFinal/src/dsfinal/Panel.java +++ b/DSFinal/src/dsfinal/Panel.java @@ -4,11 +4,13 @@ import javax.swing.JPanel; import java.awt.Dimension; import java.awt.Graphics; +import java.awt.Toolkit; import javax.net.ssl.SSLPeerUnverifiedException; /** - * + * http://stackoverflow.com/questions/19480076/java-animation-stutters-when-not-moving-mouse-cursor + * * @author anthonym */ public class Panel extends JPanel { @@ -35,6 +37,8 @@ public void paintComponent(Graphics g) //ss.drawSort(g); //shs.drawSort(g); css.drawSort(g); + + Toolkit.getDefaultToolkit().sync(); //fixes studdering on linux systems } public void update() diff --git a/DSFinal/src/dsfinal/main.java b/DSFinal/src/dsfinal/main.java index cb32799..d32a30a 100644 --- a/DSFinal/src/dsfinal/main.java +++ b/DSFinal/src/dsfinal/main.java @@ -25,6 +25,8 @@ public class main { public static void main(String[] args) { + System.setProperty("sun.java2d.opengl", "true"); + frame = new JFrame(); frame.setTitle("Sorting Comparisons"); //frame.setLayout(new Boarderlayout()); From 6a24f9f039ded979b85f2472dfcd97551e108a39 Mon Sep 17 00:00:00 2001 From: Anthony Montalbano Date: Fri, 14 Apr 2017 23:21:38 -0500 Subject: [PATCH 19/26] Added a selection menu to the gui and some buttons --- DSFinal/src/dsfinal/CocktailShakerSort.java | 13 +- DSFinal/src/dsfinal/Panel.java | 35 ++++- DSFinal/src/dsfinal/SelectionSort.java | 6 + DSFinal/src/dsfinal/main.java | 147 +++++++++++++++++++- 4 files changed, 181 insertions(+), 20 deletions(-) diff --git a/DSFinal/src/dsfinal/CocktailShakerSort.java b/DSFinal/src/dsfinal/CocktailShakerSort.java index 4453bcd..1cb957c 100644 --- a/DSFinal/src/dsfinal/CocktailShakerSort.java +++ b/DSFinal/src/dsfinal/CocktailShakerSort.java @@ -18,6 +18,7 @@ public class CocktailShakerSort extends SortingUtils{ protected boolean swappedBol; protected int loops; protected boolean running; + protected boolean sorted; public CocktailShakerSort(int[] array, boolean isGraphic) { @@ -30,6 +31,7 @@ public CocktailShakerSort(int[] array, boolean isGraphic) iNumTwo = blockArray.length - 2; loops = 0; running = true; + sorted = false; } } @@ -96,13 +98,14 @@ public void stepSort() iNum++; } + /* if(iNum >= blockArray.length -2) { if(swappedBol == false) { running = false; } - } + }*/ @@ -139,9 +142,9 @@ public void stepSort() { if(swappedBol == false && iNum <= blockArray.length - 2 - loops && iNumTwo >= 0 + loops) { - //running = false; - //blockArray[iNum+1].color = Color.YELLOW; - //blockArray[iNumTwo+2].color = Color.YELLOW; + running = false; + blockArray[iNum+1].color = Color.YELLOW; + blockArray[iNumTwo+2].color = Color.YELLOW; } blockArray[iNum+1-loops].isSorted = true; @@ -159,9 +162,7 @@ public void stepSort() { System.out.println("Already sorted"); } - //System.out.println(toString(numArray)); } - public void run() { super.run(); diff --git a/DSFinal/src/dsfinal/Panel.java b/DSFinal/src/dsfinal/Panel.java index 552f1be..2d98bea 100644 --- a/DSFinal/src/dsfinal/Panel.java +++ b/DSFinal/src/dsfinal/Panel.java @@ -16,9 +16,10 @@ public class Panel extends JPanel { - SelectionSort ss; - ShellSort shs; - CocktailShakerSort css; + protected SelectionSort ss; + protected ShellSort shs; + protected CocktailShakerSort css; + protected boolean doneSorting; public Panel(int width, int height) { @@ -28,24 +29,44 @@ public Panel(int width, int height) shs = new ShellSort(new int[0], true); css = new CocktailShakerSort(new int[0], true); super.setBackground(Color.WHITE); + + doneSorting = false; } public void paintComponent(Graphics g) { //method for repainting super.paintComponent(g); - //ss.drawSort(g); + ss.drawSort(g); //shs.drawSort(g); - css.drawSort(g); + //css.drawSort(g); Toolkit.getDefaultToolkit().sync(); //fixes studdering on linux systems } public void update() { - //ss.stepSort(); + ss.stepSort(); //shs.stepSort(); - css.stepSort(); + //css.stepSort(); + checkSort(ss); + } + + public void checkSort(SortingUtils sort) + { + int numSorted = 0; + for(int i = 0; i < sort.numArray.length; i++) + { + if(sort.blockArray[i].isSorted) + { + numSorted++; + } + } + + if(numSorted >= sort.numArray.length - 1) + doneSorting = true; + else + doneSorting = false; } } diff --git a/DSFinal/src/dsfinal/SelectionSort.java b/DSFinal/src/dsfinal/SelectionSort.java index 73cc602..35da470 100644 --- a/DSFinal/src/dsfinal/SelectionSort.java +++ b/DSFinal/src/dsfinal/SelectionSort.java @@ -97,5 +97,11 @@ public void stepSort() if(qNum!=-1) blockArray[qNum].color=Color.RED; } + + if(iNum == 0) + { + blockArray[0].isSorted = true; + blockArray[0].color=Color.ORANGE; + } } } diff --git a/DSFinal/src/dsfinal/main.java b/DSFinal/src/dsfinal/main.java index d32a30a..2e63d80 100644 --- a/DSFinal/src/dsfinal/main.java +++ b/DSFinal/src/dsfinal/main.java @@ -5,10 +5,19 @@ */ package dsfinal; +import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import javax.swing.JButton; +import javax.swing.JCheckBox; import javax.swing.JFrame; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JPanel; +import javax.swing.JSlider; import javax.swing.Timer; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; /** * @@ -17,27 +26,52 @@ public class main { final static int screenHeight = 600; final static int screenWidth = 1000; + final static String[] sortOptionsNG = {"","Bubble","Cocktail Shaker","Comb", "Gnome Bubble", "Gnome Insertion","Heap","Insertion","Merge","Odd-Even","Quick","Radix","Selection","Shell"}; + final static String[] sortOptionsG = {"","Cocktail Shaker", "Selection", "Shell"}; private static JFrame frame; private static Panel sortPanel = new Panel(screenHeight, screenWidth); + private static JPanel bottomBar; + private static JButton start; + private static JButton stop; + private static JButton next; + private static JMenuBar menuBar; + private static JMenu sortsMenu; + private static JMenu nonGraphical; + private static JMenu graphical; + //private static JCheckBox[] sortListNGSimple; + //private static JCheckBox[] sortListNGComplex; + private static JCheckBox[] sortListG; + private static JCheckBox[] sortListNG; + private static JSlider delaySlider; + + private static String sortListNGSimpleString; + private static String sortListNGComplexString; + private static String sortListGString; private static Timer timer; + private static int delay = 1000; + final static int DELAY_MIN = 0; + final static int DELAY_MAX = 2000; public static void main(String[] args) { - System.setProperty("sun.java2d.opengl", "true"); - + setUpMenus(); + //Jframe stuff frame = new JFrame(); frame.setTitle("Sorting Comparisons"); - //frame.setLayout(new Boarderlayout()); + frame.setLayout(new BorderLayout()); - frame.add(sortPanel); + frame.add(sortPanel,BorderLayout.CENTER); + frame.add(bottomBar,BorderLayout.SOUTH); frame.setResizable(false); frame.setFocusable(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); + frame.setJMenuBar(menuBar); + frame.pack(); if(frame.getContentPane().getWidth() > screenWidth) @@ -45,18 +79,117 @@ public static void main(String[] args) frame.pack(); } - timer = new Timer(10, new ActionListener() + timer = new Timer(delay, new ActionListener() { public void actionPerformed(ActionEvent evt) { sortPanel.update(); sortPanel.repaint(); + if(sortPanel.doneSorting) + { + timer.stop(); + start.setEnabled(true); + stop.setEnabled(false); + next.setEnabled(false); + } + } + }); + } + + public static void setUpMenus() + { + menuBar = new JMenuBar(); + + sortsMenu = new JMenu("Sorts"); + nonGraphical = new JMenu("Non-Graphical Sorting"); + graphical = new JMenu("Graphical Sorting"); + + for(int i = 1; i < sortOptionsNG.length; i++) + { + nonGraphical.add(new JCheckBox(sortOptionsNG[i])); + + } + + for(int i = 1; i < sortOptionsG.length; i++) + { + graphical.add(new JCheckBox(sortOptionsG[i])); + } + + menuBar.add(sortsMenu); + sortsMenu.add(nonGraphical); + sortsMenu.add(graphical); + + bottomBar = new JPanel(); + start = new JButton("Start"); + start.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + startTimer(); + } + }); + stop = new JButton("Stop"); + stop.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + timer.stop(); + start.setEnabled(true); + stop.setEnabled(false); + next.setEnabled(true); + } + }); + next = new JButton("Next"); + next.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + if(timer.isRunning()) + { + timer.stop(); + } + sortPanel.update(); + sortPanel.repaint(); + start.setEnabled(true); + stop.setEnabled(false); } }); + bottomBar.add(start); + bottomBar.add(stop); + bottomBar.add(next); - timer.start(); + delaySlider = new JSlider(JSlider.HORIZONTAL, DELAY_MIN, + DELAY_MAX, delay); + delaySlider.addChangeListener(new ChangeListener() + { + public void stateChanged(ChangeEvent e) + { + if(delaySlider.getValueIsAdjusting()) + { + int newDelay = (int)delaySlider.getValue(); + if(newDelay == 0) + timer.stop(); + else + if(!timer.isRunning()) + startTimer(); + timer.setDelay(newDelay); + } + } + }); + delaySlider.setMajorTickSpacing(500); + delaySlider.setMinorTickSpacing(100); + delaySlider.setPaintTicks(true); + delaySlider.setPaintLabels(true); + + bottomBar.add(delaySlider); } - + public static void startTimer() + { + timer.start(); + start.setEnabled(false); + stop.setEnabled(true); + next.setEnabled(false); + } } From f18619a5f5d708be1da7f0791ebbda953ae77404 Mon Sep 17 00:00:00 2001 From: Anthony Montalbano Date: Sun, 16 Apr 2017 21:28:18 -0500 Subject: [PATCH 20/26] Added a selection menu to the gui and some buttons --- DSFinal/src/dsfinal/CocktailShakerSort.java | 2 +- DSFinal/src/dsfinal/Panel.java | 40 ++++--- DSFinal/src/dsfinal/ShellSort.java | 2 +- DSFinal/src/dsfinal/SortingUtils.java | 2 + DSFinal/src/dsfinal/main.java | 122 ++++++++++++++++++-- 5 files changed, 145 insertions(+), 23 deletions(-) diff --git a/DSFinal/src/dsfinal/CocktailShakerSort.java b/DSFinal/src/dsfinal/CocktailShakerSort.java index 1cb957c..79b5ea8 100644 --- a/DSFinal/src/dsfinal/CocktailShakerSort.java +++ b/DSFinal/src/dsfinal/CocktailShakerSort.java @@ -160,7 +160,7 @@ public void stepSort() } else { - System.out.println("Already sorted"); + //System.out.println("Already sorted"); } } public void run() diff --git a/DSFinal/src/dsfinal/Panel.java b/DSFinal/src/dsfinal/Panel.java index 2d98bea..c8d26d2 100644 --- a/DSFinal/src/dsfinal/Panel.java +++ b/DSFinal/src/dsfinal/Panel.java @@ -16,19 +16,22 @@ public class Panel extends JPanel { - protected SelectionSort ss; - protected ShellSort shs; - protected CocktailShakerSort css; + //protected SelectionSort ss; + //protected ShellSort shs; + //protected CocktailShakerSort css; protected boolean doneSorting; + protected boolean graphical; + protected SortingUtils sort = new SelectionSort(new int[0], true); public Panel(int width, int height) { super(); super.setPreferredSize(new Dimension(height,width)); - ss = new SelectionSort(new int[0], true); - shs = new ShellSort(new int[0], true); - css = new CocktailShakerSort(new int[0], true); + //ss = + //shs = new ShellSort(new int[0], true); + //css = new CocktailShakerSort(new int[0], true); super.setBackground(Color.WHITE); + graphical = true; doneSorting = false; } @@ -37,19 +40,30 @@ public void paintComponent(Graphics g) { //method for repainting super.paintComponent(g); - ss.drawSort(g); - //shs.drawSort(g); - //css.drawSort(g); + + if(graphical) + { + sort.drawSort(g); + } + else + { + + } Toolkit.getDefaultToolkit().sync(); //fixes studdering on linux systems } public void update() { - ss.stepSort(); - //shs.stepSort(); - //css.stepSort(); - checkSort(ss); + if(graphical) + { + sort.stepSort(); + checkSort(sort); + } + else + { + + } } public void checkSort(SortingUtils sort) diff --git a/DSFinal/src/dsfinal/ShellSort.java b/DSFinal/src/dsfinal/ShellSort.java index c7985f3..d0dded9 100644 --- a/DSFinal/src/dsfinal/ShellSort.java +++ b/DSFinal/src/dsfinal/ShellSort.java @@ -119,7 +119,7 @@ public void stepSort() } else { - System.out.println(compNum); + //System.out.println(compNum); if(compNum == 0) { for(int i = 0; i < blockArray.length; i++) diff --git a/DSFinal/src/dsfinal/SortingUtils.java b/DSFinal/src/dsfinal/SortingUtils.java index 1ac0fe2..a3ae86e 100644 --- a/DSFinal/src/dsfinal/SortingUtils.java +++ b/DSFinal/src/dsfinal/SortingUtils.java @@ -76,6 +76,8 @@ public void drawSort(Graphics g) } + public abstract void stepSort(); + public String toString(int[] array) { String str = ""; diff --git a/DSFinal/src/dsfinal/main.java b/DSFinal/src/dsfinal/main.java index 2e63d80..8495224 100644 --- a/DSFinal/src/dsfinal/main.java +++ b/DSFinal/src/dsfinal/main.java @@ -8,12 +8,14 @@ import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JPanel; +import javax.swing.JRadioButton; import javax.swing.JSlider; import javax.swing.Timer; import javax.swing.event.ChangeEvent; @@ -41,7 +43,7 @@ public class main { private static JMenu graphical; //private static JCheckBox[] sortListNGSimple; //private static JCheckBox[] sortListNGComplex; - private static JCheckBox[] sortListG; + private static ButtonGroup sortListG; private static JCheckBox[] sortListNG; private static JSlider delaySlider; @@ -104,6 +106,8 @@ public static void setUpMenus() nonGraphical = new JMenu("Non-Graphical Sorting"); graphical = new JMenu("Graphical Sorting"); + ButtonGroup bg = new ButtonGroup(); + for(int i = 1; i < sortOptionsNG.length; i++) { nonGraphical.add(new JCheckBox(sortOptionsNG[i])); @@ -112,9 +116,13 @@ public static void setUpMenus() for(int i = 1; i < sortOptionsG.length; i++) { - graphical.add(new JCheckBox(sortOptionsG[i])); + JRadioButton rb = new JRadioButton(sortOptionsG[i]); + rb.addActionListener(e -> setUpGraphical(e)); + bg.add(rb); + graphical.add(rb); } + menuBar.add(sortsMenu); sortsMenu.add(nonGraphical); sortsMenu.add(graphical); @@ -152,6 +160,11 @@ public void actionPerformed(ActionEvent e) sortPanel.repaint(); start.setEnabled(true); stop.setEnabled(false); + + if(sortPanel.doneSorting) + { + stopTimer(); + } } }); bottomBar.add(start); @@ -186,10 +199,103 @@ public void stateChanged(ChangeEvent e) } public static void startTimer() - { - timer.start(); - start.setEnabled(false); - stop.setEnabled(true); - next.setEnabled(false); - } + { + timer.start(); + start.setEnabled(false); + stop.setEnabled(true); + next.setEnabled(false); + } + + public static void stopTimer() + { + timer.stop(); + start.setEnabled(true); + stop.setEnabled(false); + next.setEnabled(false); + } + + public static void setUpGraphical(ActionEvent e) + { + JRadioButton source = (JRadioButton)(e.getSource()); + String sortSTR = source.getText(); + + int[] toBeSorted = generateArray(0, 30); + + if(sortSTR.equals(sortOptionsG[1])) + { + sortPanel.sort = new CocktailShakerSort(toBeSorted,true); + } + else if(sortSTR.equals(sortOptionsG[2])) + { + sortPanel.sort = new SelectionSort(toBeSorted,true); + } + else if(sortSTR.equals(sortOptionsG[3])) + { + sortPanel.sort = new ShellSort(toBeSorted,true); + } + + timer.stop(); + } + + public static int getIndex(ActionEvent e) + { + JCheckBox source = (JCheckBox)(e.getSource()); + + if(source.isSelected()) + { + + } + return 0; + } + + public static int[] generateArray(int type, int max) + { + int[] tBSort = new int[max]; + switch(type) + { + case 1: + //random + System.out.println("\nGenerating random array of " + max + " integers"); + for(int i = 0; i < max; i++) + { + tBSort[i] = (int)(Math.random() * max); + } + break; + case 2: + //backwards + System.out.println("\nGenerating backwards array of " + max + " integers"); + for(int i = 0; i < max; i++) + { + tBSort[max-1-i] = i; + } + break; + case 3: + //almost sorted + System.out.println("\nGenerating almost sorted array of " + max + " integers"); + for(int i = 0; i < max; i++) + { + if(i < (int)(max * .75)) + { + tBSort[i] = i; + } + else + { + tBSort[i] = (int)(Math.random() * max); + } + } + break; + case 4: + //few unique + for(int i = 0; i < 5; i++) + { + for(int q = 0; q < max/5; q++) + { + //doesn't work yet... + } + } + break; + } + + return tBSort; + } } From 465d46c5baf32e23bdf00c444ca8679d9f2ea9a0 Mon Sep 17 00:00:00 2001 From: Anthony Montalbano Date: Sun, 16 Apr 2017 22:36:25 -0500 Subject: [PATCH 21/26] Added a selection menu to the gui and some buttons --- DSFinal/src/dsfinal/BubbleSort.java | 8 +- DSFinal/src/dsfinal/CocktailShakerSort.java | 1 + DSFinal/src/dsfinal/CombSort.java | 9 +- DSFinal/src/dsfinal/GnomeBubbleSort.java | 9 +- DSFinal/src/dsfinal/GnomeInsertionSort.java | 9 +- DSFinal/src/dsfinal/HeapSort.java | 9 +- DSFinal/src/dsfinal/InsertionSort.java | 9 +- DSFinal/src/dsfinal/MergeSort.java | 9 +- DSFinal/src/dsfinal/OddEvenSort.java | 9 +- DSFinal/src/dsfinal/QuickSort.java | 9 +- DSFinal/src/dsfinal/RadixSort.java | 9 +- DSFinal/src/dsfinal/ShellSort.java | 1 + DSFinal/src/dsfinal/main.java | 140 +++++++++++++++++--- 13 files changed, 191 insertions(+), 40 deletions(-) diff --git a/DSFinal/src/dsfinal/BubbleSort.java b/DSFinal/src/dsfinal/BubbleSort.java index b3aff63..ffc97d4 100644 --- a/DSFinal/src/dsfinal/BubbleSort.java +++ b/DSFinal/src/dsfinal/BubbleSort.java @@ -11,9 +11,9 @@ */ public class BubbleSort extends SortingUtils { - public BubbleSort(int[] array) + public BubbleSort(int[] array, boolean isGraphic) { - super(array,"Bubble Sort"); + super(array,"Bubble Sort",isGraphic); } @Override @@ -36,4 +36,8 @@ public void run() super.run(); } + public void stepSort() + { + } + } diff --git a/DSFinal/src/dsfinal/CocktailShakerSort.java b/DSFinal/src/dsfinal/CocktailShakerSort.java index 79b5ea8..bd622cf 100644 --- a/DSFinal/src/dsfinal/CocktailShakerSort.java +++ b/DSFinal/src/dsfinal/CocktailShakerSort.java @@ -6,6 +6,7 @@ package dsfinal; import java.awt.Color; +import java.awt.Graphics; /** * diff --git a/DSFinal/src/dsfinal/CombSort.java b/DSFinal/src/dsfinal/CombSort.java index 0d3aefe..306ecb6 100644 --- a/DSFinal/src/dsfinal/CombSort.java +++ b/DSFinal/src/dsfinal/CombSort.java @@ -11,9 +11,9 @@ */ public class CombSort extends SortingUtils { - public CombSort(int[] array) + public CombSort(int[] array, boolean isGraphic) { - super(array, "Comb Sort"); + super(array, "Comb Sort", isGraphic); } public void sort() @@ -50,4 +50,9 @@ public void run() { super.run(); } + + public void stepSort() + { + + } } diff --git a/DSFinal/src/dsfinal/GnomeBubbleSort.java b/DSFinal/src/dsfinal/GnomeBubbleSort.java index 4486a11..3a5fd5b 100644 --- a/DSFinal/src/dsfinal/GnomeBubbleSort.java +++ b/DSFinal/src/dsfinal/GnomeBubbleSort.java @@ -11,9 +11,9 @@ */ public class GnomeBubbleSort extends SortingUtils { - public GnomeBubbleSort(int[] array) + public GnomeBubbleSort(int[] array, boolean isGraphic) { - super(array, "Gnome Bubble Sort"); + super(array, "Gnome Bubble Sort", isGraphic); } public void sort() @@ -40,4 +40,9 @@ public void run() //System.out.println(super.toString()); } + public void stepSort() + { + + } + } diff --git a/DSFinal/src/dsfinal/GnomeInsertionSort.java b/DSFinal/src/dsfinal/GnomeInsertionSort.java index e99d66a..6ea84c0 100644 --- a/DSFinal/src/dsfinal/GnomeInsertionSort.java +++ b/DSFinal/src/dsfinal/GnomeInsertionSort.java @@ -11,9 +11,9 @@ */ public class GnomeInsertionSort extends SortingUtils { - public GnomeInsertionSort(int[] array) + public GnomeInsertionSort(int[] array, boolean isGraphic) { - super(array, "Gnome Insertion Sort"); + super(array, "Gnome Insertion Sort",isGraphic); } public void sort() @@ -41,4 +41,9 @@ public void run() //System.out.println(super.toString()); } + public void stepSort() + { + + } + } diff --git a/DSFinal/src/dsfinal/HeapSort.java b/DSFinal/src/dsfinal/HeapSort.java index 16e75b9..17520e6 100644 --- a/DSFinal/src/dsfinal/HeapSort.java +++ b/DSFinal/src/dsfinal/HeapSort.java @@ -11,9 +11,9 @@ */ public class HeapSort extends SortingUtils { - public HeapSort(int[] array) + public HeapSort(int[] array, boolean isGraphic) { - super(array, "Heap Sort"); + super(array, "Heap Sort", isGraphic); } @Override @@ -91,4 +91,9 @@ public void run() super.run(); } + public void stepSort() + { + + } + } diff --git a/DSFinal/src/dsfinal/InsertionSort.java b/DSFinal/src/dsfinal/InsertionSort.java index 7a66beb..51e6ff7 100644 --- a/DSFinal/src/dsfinal/InsertionSort.java +++ b/DSFinal/src/dsfinal/InsertionSort.java @@ -11,9 +11,9 @@ */ public class InsertionSort extends SortingUtils{ - public InsertionSort(int[] array) + public InsertionSort(int[] array, boolean isGraphic) { - super(array, "Insertion Sort"); + super(array, "Insertion Sort", isGraphic); } @Override @@ -36,4 +36,9 @@ public void run() super.run(); } + public void stepSort() + { + + } + } diff --git a/DSFinal/src/dsfinal/MergeSort.java b/DSFinal/src/dsfinal/MergeSort.java index 4a51979..3068381 100644 --- a/DSFinal/src/dsfinal/MergeSort.java +++ b/DSFinal/src/dsfinal/MergeSort.java @@ -11,9 +11,9 @@ */ public class MergeSort extends SortingUtils { - public MergeSort(int[] array) + public MergeSort(int[] array, boolean isGraphic) { - super(array, "Merge Sort"); + super(array, "Merge Sort", isGraphic); } @Override @@ -61,4 +61,9 @@ public void run() super.run(); } + public void stepSort() + { + + } + } diff --git a/DSFinal/src/dsfinal/OddEvenSort.java b/DSFinal/src/dsfinal/OddEvenSort.java index ed7eec0..334e3ab 100644 --- a/DSFinal/src/dsfinal/OddEvenSort.java +++ b/DSFinal/src/dsfinal/OddEvenSort.java @@ -11,9 +11,9 @@ */ public class OddEvenSort extends SortingUtils { - public OddEvenSort(int[] array) + public OddEvenSort(int[] array, boolean isGraphic) { - super(array, "Odd-Even Sort"); + super(array, "Odd-Even Sort", isGraphic); } public void sort() @@ -50,4 +50,9 @@ public void run() } + public void stepSort() + { + + } + } diff --git a/DSFinal/src/dsfinal/QuickSort.java b/DSFinal/src/dsfinal/QuickSort.java index 210ac0a..579c856 100644 --- a/DSFinal/src/dsfinal/QuickSort.java +++ b/DSFinal/src/dsfinal/QuickSort.java @@ -11,9 +11,9 @@ */ public class QuickSort extends SortingUtils { - public QuickSort(int[] array) + public QuickSort(int[] array, boolean isGraphic) { - super(array, "Quick Sort"); + super(array, "Quick Sort", isGraphic); } @Override @@ -87,4 +87,9 @@ public void run() { super.run(); } + + public void stepSort() + { + + } } diff --git a/DSFinal/src/dsfinal/RadixSort.java b/DSFinal/src/dsfinal/RadixSort.java index bee7593..9981535 100644 --- a/DSFinal/src/dsfinal/RadixSort.java +++ b/DSFinal/src/dsfinal/RadixSort.java @@ -14,9 +14,9 @@ public class RadixSort extends SortingUtils { private int digits = 0; - public RadixSort(int[] array, int numDigits) + public RadixSort(int[] array, int numDigits, boolean isGraphic) { - super(array, "Radix Sort"); + super(array, "Radix Sort", isGraphic); digits = numDigits; } @@ -123,4 +123,9 @@ public String toString(int[] array) str += "\nNumber of swaps = " + swaps; return str; } + + public void stepSort() + { + + } } diff --git a/DSFinal/src/dsfinal/ShellSort.java b/DSFinal/src/dsfinal/ShellSort.java index d0dded9..85f35d3 100644 --- a/DSFinal/src/dsfinal/ShellSort.java +++ b/DSFinal/src/dsfinal/ShellSort.java @@ -1,6 +1,7 @@ package dsfinal; import java.awt.Color; +import java.awt.Graphics; /** * diff --git a/DSFinal/src/dsfinal/main.java b/DSFinal/src/dsfinal/main.java index 8495224..c4486cf 100644 --- a/DSFinal/src/dsfinal/main.java +++ b/DSFinal/src/dsfinal/main.java @@ -8,6 +8,7 @@ import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.util.ArrayList; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JCheckBox; @@ -55,6 +56,7 @@ public class main { private static int delay = 1000; final static int DELAY_MIN = 0; final static int DELAY_MAX = 2000; + private static ArrayList sorts = new ArrayList<>(); public static void main(String[] args) { @@ -85,6 +87,21 @@ public static void main(String[] args) { public void actionPerformed(ActionEvent evt) { + if(sortPanel.graphical == false) + { + while(!sorts.isEmpty()) + { + for(int i = 0; i < sorts.size();i++) + { + if(!sorts.get(i).isAlive()) + { + sorts.remove(i); + } + } + } + stopTimer(); + } + sortPanel.update(); sortPanel.repaint(); if(sortPanel.doneSorting) @@ -110,7 +127,9 @@ public static void setUpMenus() for(int i = 1; i < sortOptionsNG.length; i++) { - nonGraphical.add(new JCheckBox(sortOptionsNG[i])); + JCheckBox cb = new JCheckBox(sortOptionsNG[i]); + cb.addActionListener(e -> setUpNG(e)); + nonGraphical.add(cb); } @@ -204,6 +223,15 @@ public static void startTimer() start.setEnabled(false); stop.setEnabled(true); next.setEnabled(false); + + if(sortPanel.graphical == false) + { + sorts.forEach((t) -> { + t.start(); + }); + + System.out.println("Starting Non Graphical Sorting"); + } } public static void stopTimer() @@ -216,10 +244,11 @@ public static void stopTimer() public static void setUpGraphical(ActionEvent e) { + sortPanel.graphical = true; JRadioButton source = (JRadioButton)(e.getSource()); String sortSTR = source.getText(); - int[] toBeSorted = generateArray(0, 30); + int[] toBeSorted = generateArray(2, 30); if(sortSTR.equals(sortOptionsG[1])) { @@ -237,16 +266,85 @@ else if(sortSTR.equals(sortOptionsG[3])) timer.stop(); } - public static int getIndex(ActionEvent e) + public static void setUpNG(ActionEvent e) { + stopTimer(); + sortPanel.graphical = false; JCheckBox source = (JCheckBox)(e.getSource()); + String sortSTR = source.getText(); + System.out.println(source.getText()); + sorts.clear(); + + int[] toBeSorted = generateArray(0, 10000); - if(source.isSelected()) + if(sortSTR.equals(sortOptionsNG[1])) { - + Runnable bubbleRunnable = new BubbleSort(toBeSorted,false); + sorts.add(new Thread(bubbleRunnable, "Bubble Sort")); + } + if(sortSTR.equals(sortOptionsNG[2])) + { + Runnable cocktailShakerRunnable = new CocktailShakerSort(toBeSorted,false); + sorts.add(new Thread (cocktailShakerRunnable, "Cocktail Shaker Sort")); + } + if(sortSTR.equals(sortOptionsNG[3])) + { + Runnable combRunnable = new CombSort(toBeSorted,false); + sorts.add(new Thread(combRunnable, "Comb Sort")); + } + if(sortSTR.equals(sortOptionsNG[4])) + { + Runnable gnomeBubbleRunnable = new GnomeBubbleSort(toBeSorted,false); + sorts.add(new Thread(gnomeBubbleRunnable, "Gnome Bubble Sort")); + } + if(sortSTR.equals(sortOptionsNG[5])) + { + Runnable gnomeInsertionRunnable = new GnomeInsertionSort(toBeSorted,false); + sorts.add(new Thread(gnomeInsertionRunnable, "Gnome Insertion Sort")); + } + if(sortSTR.equals(sortOptionsNG[6])) + { + Runnable heapRunnable = new HeapSort(toBeSorted,false); + sorts.add(new Thread(heapRunnable, "Heap Sort")); + } + if(sortSTR.equals(sortOptionsNG[7])) + { + Runnable insertionRunnable = new InsertionSort(toBeSorted,false); + sorts.add(new Thread(insertionRunnable, "Insertion Sort")); + } + if(sortSTR.equals(sortOptionsNG[8])) + { + Runnable mergeRunnable = new MergeSort(toBeSorted,false); + sorts.add(new Thread(mergeRunnable, "Merge Sort")); + } + if(sortSTR.equals(sortOptionsNG[9])) + { + Runnable oddEvenRunnable = new OddEvenSort(toBeSorted,false); + sorts.add(new Thread(oddEvenRunnable, "Odd-Even Sort")); + } + if(sortSTR.equals(sortOptionsNG[10])) + { + Runnable quickRunnable = new QuickSort(toBeSorted,false); + sorts.add(new Thread(quickRunnable, "Quick Sort")); + } + if(sortSTR.equals(sortOptionsNG[11])) + { + Runnable radixRunnable = new RadixSort(toBeSorted, getNumDigits(toBeSorted.length),false); + sorts.add(new Thread(radixRunnable, "Radix Sort")); + } + if(sortSTR.equals(sortOptionsNG[12])) + { + Runnable selectionRunnable = new SelectionSort(toBeSorted,false); + sorts.add(new Thread(selectionRunnable, "Selection Sort")); + } + if(sortSTR.equals(sortOptionsNG[13])) + { + Runnable shellRunnable = new ShellSort(toBeSorted,false); + sorts.add(new Thread(shellRunnable, "Shell Sort")); + } + + delay = 0; } - return 0; - } public static int[] generateArray(int type, int max) { @@ -255,7 +353,7 @@ public static int[] generateArray(int type, int max) { case 1: //random - System.out.println("\nGenerating random array of " + max + " integers"); + //System.out.println("\nGenerating random array of " + max + " integers"); for(int i = 0; i < max; i++) { tBSort[i] = (int)(Math.random() * max); @@ -263,7 +361,7 @@ public static int[] generateArray(int type, int max) break; case 2: //backwards - System.out.println("\nGenerating backwards array of " + max + " integers"); + //System.out.println("\nGenerating backwards array of " + max + " integers"); for(int i = 0; i < max; i++) { tBSort[max-1-i] = i; @@ -271,7 +369,7 @@ public static int[] generateArray(int type, int max) break; case 3: //almost sorted - System.out.println("\nGenerating almost sorted array of " + max + " integers"); + //System.out.println("\nGenerating almost sorted array of " + max + " integers"); for(int i = 0; i < max; i++) { if(i < (int)(max * .75)) @@ -284,18 +382,20 @@ public static int[] generateArray(int type, int max) } } break; - case 4: - //few unique - for(int i = 0; i < 5; i++) - { - for(int q = 0; q < max/5; q++) - { - //doesn't work yet... - } - } - break; } return tBSort; } + + private static int getNumDigits(int num) + { + if(num == 0) + { + return 0; + } + else + { + return 1+ getNumDigits(num/10); + } + } } From 7386d46b7a11942225a5ccb1dddb123fd106f93b Mon Sep 17 00:00:00 2001 From: Anthony Montalbano Date: Sun, 16 Apr 2017 23:10:16 -0500 Subject: [PATCH 22/26] Added a selection menu to the gui and some buttons --- DSFinal/src/dsfinal/Panel.java | 7 +- DSFinal/src/dsfinal/main.java | 180 ++++++++++++++++++--------------- 2 files changed, 101 insertions(+), 86 deletions(-) diff --git a/DSFinal/src/dsfinal/Panel.java b/DSFinal/src/dsfinal/Panel.java index c8d26d2..fdfe50b 100644 --- a/DSFinal/src/dsfinal/Panel.java +++ b/DSFinal/src/dsfinal/Panel.java @@ -47,7 +47,8 @@ public void paintComponent(Graphics g) } else { - + g.setColor(Color.white); + g.fillRect(0, 0, WIDTH, HEIGHT); } Toolkit.getDefaultToolkit().sync(); //fixes studdering on linux systems @@ -60,10 +61,6 @@ public void update() sort.stepSort(); checkSort(sort); } - else - { - - } } public void checkSort(SortingUtils sort) diff --git a/DSFinal/src/dsfinal/main.java b/DSFinal/src/dsfinal/main.java index c4486cf..7169421 100644 --- a/DSFinal/src/dsfinal/main.java +++ b/DSFinal/src/dsfinal/main.java @@ -122,13 +122,15 @@ public static void setUpMenus() sortsMenu = new JMenu("Sorts"); nonGraphical = new JMenu("Non-Graphical Sorting"); graphical = new JMenu("Graphical Sorting"); + sortListNG = new JCheckBox[sortOptionsNG.length]; ButtonGroup bg = new ButtonGroup(); for(int i = 1; i < sortOptionsNG.length; i++) { JCheckBox cb = new JCheckBox(sortOptionsNG[i]); - cb.addActionListener(e -> setUpNG(e)); + //cb.addActionListener(e -> setUpNG()); + sortListNG[i] = cb; nonGraphical.add(cb); } @@ -224,13 +226,23 @@ public static void startTimer() stop.setEnabled(true); next.setEnabled(false); - if(sortPanel.graphical == false) + for(int i = 1; i < sortListNG.length; i++) { - sorts.forEach((t) -> { - t.start(); - }); - - System.out.println("Starting Non Graphical Sorting"); + if(sortListNG[i].isSelected() == true) + { + setUpNG(); + sorts.forEach((t) -> { + t.start(); + }); + + System.out.println("\fStarting Non Graphical Sorting\n"); + + for(int q = 1; q < sortListNG.length; q++) + { + sortListNG[q].setSelected(false); + } + break; + } } } @@ -244,11 +256,12 @@ public static void stopTimer() public static void setUpGraphical(ActionEvent e) { + delaySlider.setEnabled(true); sortPanel.graphical = true; JRadioButton source = (JRadioButton)(e.getSource()); String sortSTR = source.getText(); - int[] toBeSorted = generateArray(2, 30); + int[] toBeSorted = {0}; if(sortSTR.equals(sortOptionsG[1])) { @@ -266,86 +279,91 @@ else if(sortSTR.equals(sortOptionsG[3])) timer.stop(); } - public static void setUpNG(ActionEvent e) + public static void setUpNG() { stopTimer(); sortPanel.graphical = false; - JCheckBox source = (JCheckBox)(e.getSource()); - String sortSTR = source.getText(); - System.out.println(source.getText()); - sorts.clear(); - + //JCheckBox source = (JCheckBox)(e.getSource()); int[] toBeSorted = generateArray(0, 10000); - - if(sortSTR.equals(sortOptionsNG[1])) - { - Runnable bubbleRunnable = new BubbleSort(toBeSorted,false); - sorts.add(new Thread(bubbleRunnable, "Bubble Sort")); - } - if(sortSTR.equals(sortOptionsNG[2])) - { - Runnable cocktailShakerRunnable = new CocktailShakerSort(toBeSorted,false); - sorts.add(new Thread (cocktailShakerRunnable, "Cocktail Shaker Sort")); - } - if(sortSTR.equals(sortOptionsNG[3])) - { - Runnable combRunnable = new CombSort(toBeSorted,false); - sorts.add(new Thread(combRunnable, "Comb Sort")); - } - if(sortSTR.equals(sortOptionsNG[4])) - { - Runnable gnomeBubbleRunnable = new GnomeBubbleSort(toBeSorted,false); - sorts.add(new Thread(gnomeBubbleRunnable, "Gnome Bubble Sort")); - } - if(sortSTR.equals(sortOptionsNG[5])) - { - Runnable gnomeInsertionRunnable = new GnomeInsertionSort(toBeSorted,false); - sorts.add(new Thread(gnomeInsertionRunnable, "Gnome Insertion Sort")); - } - if(sortSTR.equals(sortOptionsNG[6])) - { - Runnable heapRunnable = new HeapSort(toBeSorted,false); - sorts.add(new Thread(heapRunnable, "Heap Sort")); - } - if(sortSTR.equals(sortOptionsNG[7])) - { - Runnable insertionRunnable = new InsertionSort(toBeSorted,false); - sorts.add(new Thread(insertionRunnable, "Insertion Sort")); - } - if(sortSTR.equals(sortOptionsNG[8])) - { - Runnable mergeRunnable = new MergeSort(toBeSorted,false); - sorts.add(new Thread(mergeRunnable, "Merge Sort")); - } - if(sortSTR.equals(sortOptionsNG[9])) - { - Runnable oddEvenRunnable = new OddEvenSort(toBeSorted,false); - sorts.add(new Thread(oddEvenRunnable, "Odd-Even Sort")); - } - if(sortSTR.equals(sortOptionsNG[10])) - { - Runnable quickRunnable = new QuickSort(toBeSorted,false); - sorts.add(new Thread(quickRunnable, "Quick Sort")); - } - if(sortSTR.equals(sortOptionsNG[11])) - { - Runnable radixRunnable = new RadixSort(toBeSorted, getNumDigits(toBeSorted.length),false); - sorts.add(new Thread(radixRunnable, "Radix Sort")); - } - if(sortSTR.equals(sortOptionsNG[12])) - { - Runnable selectionRunnable = new SelectionSort(toBeSorted,false); - sorts.add(new Thread(selectionRunnable, "Selection Sort")); - } - if(sortSTR.equals(sortOptionsNG[13])) + sorts.clear(); + sorts.ensureCapacity(sortListNG.length); + for(int i = 1; i < sortListNG.length; i++) { - Runnable shellRunnable = new ShellSort(toBeSorted,false); - sorts.add(new Thread(shellRunnable, "Shell Sort")); + if(sortListNG[i].isSelected())// sortListNG[i].&& sorts.size() == i-1 && sorts.get(i).getName().equals(sortListNG[i].getText() + " Sort") == false) + { + String sortSTR = sortListNG[i].getText(); + + if(sortSTR.equals(sortOptionsNG[1])) + { + Runnable bubbleRunnable = new BubbleSort(toBeSorted,false); + sorts.add(new Thread(bubbleRunnable, "Bubble Sort")); + } + if(sortSTR.equals(sortOptionsNG[2])) + { + Runnable cocktailShakerRunnable = new CocktailShakerSort(toBeSorted,false); + sorts.add(new Thread (cocktailShakerRunnable, "Cocktail Shaker Sort")); + } + if(sortSTR.equals(sortOptionsNG[3])) + { + Runnable combRunnable = new CombSort(toBeSorted,false); + sorts.add(new Thread(combRunnable, "Comb Sort")); + } + if(sortSTR.equals(sortOptionsNG[4])) + { + Runnable gnomeBubbleRunnable = new GnomeBubbleSort(toBeSorted,false); + sorts.add(new Thread(gnomeBubbleRunnable, "Gnome Bubble Sort")); + } + if(sortSTR.equals(sortOptionsNG[5])) + { + Runnable gnomeInsertionRunnable = new GnomeInsertionSort(toBeSorted,false); + sorts.add(new Thread(gnomeInsertionRunnable, "Gnome Insertion Sort")); + } + if(sortSTR.equals(sortOptionsNG[6])) + { + Runnable heapRunnable = new HeapSort(toBeSorted,false); + sorts.add(new Thread(heapRunnable, "Heap Sort")); + } + if(sortSTR.equals(sortOptionsNG[7])) + { + Runnable insertionRunnable = new InsertionSort(toBeSorted,false); + sorts.add(new Thread(insertionRunnable, "Insertion Sort")); + } + if(sortSTR.equals(sortOptionsNG[8])) + { + Runnable mergeRunnable = new MergeSort(toBeSorted,false); + sorts.add(new Thread(mergeRunnable, "Merge Sort")); + } + if(sortSTR.equals(sortOptionsNG[9])) + { + Runnable oddEvenRunnable = new OddEvenSort(toBeSorted,false); + sorts.add(new Thread(oddEvenRunnable, "Odd-Even Sort")); + } + if(sortSTR.equals(sortOptionsNG[10])) + { + Runnable quickRunnable = new QuickSort(toBeSorted,false); + sorts.add(new Thread(quickRunnable, "Quick Sort")); + } + if(sortSTR.equals(sortOptionsNG[11])) + { + Runnable radixRunnable = new RadixSort(toBeSorted, getNumDigits(toBeSorted.length),false); + sorts.add(new Thread(radixRunnable, "Radix Sort")); + } + if(sortSTR.equals(sortOptionsNG[12])) + { + Runnable selectionRunnable = new SelectionSort(toBeSorted,false); + sorts.add(new Thread(selectionRunnable, "Selection Sort")); + } + if(sortSTR.equals(sortOptionsNG[13])) + { + Runnable shellRunnable = new ShellSort(toBeSorted,false); + sorts.add(new Thread(shellRunnable, "Shell Sort")); + } + } } - + delay = 0; - } - + delaySlider.setEnabled(false); + } public static int[] generateArray(int type, int max) { int[] tBSort = new int[max]; From 1b6daf217d912e3af8135421ffd1d6d411287ae6 Mon Sep 17 00:00:00 2001 From: anthonym Date: Mon, 17 Apr 2017 18:00:11 -0500 Subject: [PATCH 23/26] --- DSFinal/src/dsfinal/CombSort.java | 46 +++++++++++++++- DSFinal/src/dsfinal/OddEvenSort.java | 1 - DSFinal/src/dsfinal/RadixSort.java | 31 +++++------ DSFinal/src/dsfinal/main.java | 78 +++++++++++++++++++--------- 4 files changed, 110 insertions(+), 46 deletions(-) diff --git a/DSFinal/src/dsfinal/CombSort.java b/DSFinal/src/dsfinal/CombSort.java index 306ecb6..867faa8 100644 --- a/DSFinal/src/dsfinal/CombSort.java +++ b/DSFinal/src/dsfinal/CombSort.java @@ -11,15 +11,26 @@ */ public class CombSort extends SortingUtils { + protected int gapNum; + protected boolean sortedBol; + protected int iNum; + final double shrink = 1.3; + public CombSort(int[] array, boolean isGraphic) { super(array, "Comb Sort", isGraphic); + + if(isGraphic) + { + gapNum = blockArray.length; + sortedBol = false; + iNum = 0; + } } public void sort() { int gap = array.length; - double shrink = 1.3; boolean sorted = false; while(!sorted) @@ -53,6 +64,37 @@ public void run() public void stepSort() { - + if(sortedBol == false) + { + if(iNum == 0) + { + gapNum = (int)(gapNum/shrink); + System.out.println(gapNum); + if(gapNum > 1) + { + sortedBol = false; + } + else + { + gapNum = 1; + sortedBol = true; + } + } + + if(iNum + gapNum < blockArray.length) + { + if(blockArray[iNum].value > blockArray[iNum+gapNum].value) + { + swapGraphic(iNum, iNum+gapNum); + sortedBol = false; + iNum++; + } + } + + if(iNum + gapNum >= blockArray.length) + { + iNum = 0; + } + } } } diff --git a/DSFinal/src/dsfinal/OddEvenSort.java b/DSFinal/src/dsfinal/OddEvenSort.java index 334e3ab..b5162c9 100644 --- a/DSFinal/src/dsfinal/OddEvenSort.java +++ b/DSFinal/src/dsfinal/OddEvenSort.java @@ -46,7 +46,6 @@ public void sort() public void run() { super.run(); - System.out.println(super.toString()); } diff --git a/DSFinal/src/dsfinal/RadixSort.java b/DSFinal/src/dsfinal/RadixSort.java index 9981535..62e5ea1 100644 --- a/DSFinal/src/dsfinal/RadixSort.java +++ b/DSFinal/src/dsfinal/RadixSort.java @@ -18,6 +18,10 @@ public RadixSort(int[] array, int numDigits, boolean isGraphic) { super(array, "Radix Sort", isGraphic); digits = numDigits; + + if(isGraphic) + { + } } public void sort() @@ -31,7 +35,7 @@ public void run() //toString(); } - public static void main(String[] args) + public void main(String[] args) { int[] temp = new int[50]; @@ -48,13 +52,7 @@ public static void main(String[] args) } //additional methods required to run - /** - * - * @param number - * @param k - * @return the digit of a number at k. if not 0 - */ - private static int getDigit(int number, int numDig) + private int getDigit(int number, int numDig) { if(numDig > number) { @@ -66,13 +64,13 @@ private static int getDigit(int number, int numDig) return number%10; } - private static Queue[] itemsToQueue(int[] nums, int numDig) + private Queue[] itemsToQueue(int[] nums, int numDig) { Queue[] storageQueue = new Queue[10]; for(int i = 0; i < storageQueue.length; i++) { - storageQueue[i] = new LinkedList(); + storageQueue[i] = new LinkedList<>(); } for(int i = 0; i < nums.length; i++) @@ -84,16 +82,14 @@ private static Queue[] itemsToQueue(int[] nums, int numDig) return storageQueue; } - private static int[] queuesToArray(Queue[] ques, int numVals) + private int[] queuesToArray(Queue[] ques, int numVals) { int[] temp = new int[numVals]; int counter = 0; - for(int i = 0; i < ques.length; i++) - { - while(ques[i].isEmpty() == false) - { - temp[counter] = ques[i].remove(); + for (Queue que : ques) { + while (que.isEmpty() == false) { + temp[counter] = que.remove(); counter += 1; } } @@ -101,7 +97,7 @@ private static int[] queuesToArray(Queue[] ques, int numVals) return temp; } - private static int[] sort(int[] nums,int numDigits) + private int[] sort(int[] nums,int numDigits) { int length = nums.length; @@ -126,6 +122,5 @@ public String toString(int[] array) public void stepSort() { - } } diff --git a/DSFinal/src/dsfinal/main.java b/DSFinal/src/dsfinal/main.java index 7169421..d61f14b 100644 --- a/DSFinal/src/dsfinal/main.java +++ b/DSFinal/src/dsfinal/main.java @@ -21,6 +21,7 @@ import javax.swing.Timer; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; +import javax.swing.JOptionPane; /** * @@ -30,7 +31,7 @@ public class main { final static int screenHeight = 600; final static int screenWidth = 1000; final static String[] sortOptionsNG = {"","Bubble","Cocktail Shaker","Comb", "Gnome Bubble", "Gnome Insertion","Heap","Insertion","Merge","Odd-Even","Quick","Radix","Selection","Shell"}; - final static String[] sortOptionsG = {"","Cocktail Shaker", "Selection", "Shell"}; + final static String[] sortOptionsG = {"","Cocktail Shaker","Comb", "Selection", "Shell"}; private static JFrame frame; private static Panel sortPanel = new Panel(screenHeight, screenWidth); @@ -53,10 +54,12 @@ public class main { private static String sortListGString; private static Timer timer; - private static int delay = 1000; + private static int delay = 500; final static int DELAY_MIN = 0; - final static int DELAY_MAX = 2000; + final static int DELAY_MAX = 1000; + private static ArrayList sorts = new ArrayList<>(); + protected static int lengthOfSortList; public static void main(String[] args) { @@ -221,22 +224,33 @@ public void stateChanged(ChangeEvent e) public static void startTimer() { - timer.start(); - start.setEnabled(false); - stop.setEnabled(true); - next.setEnabled(false); - for(int i = 1; i < sortListNG.length; i++) { if(sortListNG[i].isSelected() == true) { - setUpNG(); + String response = JOptionPane.showInputDialog("Please enter the number of integers you want to sort. " + + " Numbers over 100,000 will slow down everything", "Number of Integers"); + while(true) + { + try + { + lengthOfSortList = Integer.valueOf(response); + setUpNG(); + break; + } + catch(Exception e) + { + response = JOptionPane.showInputDialog("Please enter the number of integers you want to sort. " + + " Numbers over 100,000 will slow down everything", "Number of Integers"); + + } + } + + System.out.println("\fStarting Non Graphical Sorting\n"); sorts.forEach((t) -> { t.start(); }); - - System.out.println("\fStarting Non Graphical Sorting\n"); - + for(int q = 1; q < sortListNG.length; q++) { sortListNG[q].setSelected(false); @@ -244,6 +258,12 @@ public static void startTimer() break; } } + + timer.start(); + start.setEnabled(false); + stop.setEnabled(true); + next.setEnabled(false); + } public static void stopTimer() @@ -269,12 +289,16 @@ public static void setUpGraphical(ActionEvent e) } else if(sortSTR.equals(sortOptionsG[2])) { - sortPanel.sort = new SelectionSort(toBeSorted,true); + sortPanel.sort = new CombSort(toBeSorted,true); } else if(sortSTR.equals(sortOptionsG[3])) { sortPanel.sort = new ShellSort(toBeSorted,true); } + else if(sortSTR.equals(sortOptionsG[4])) + { + sortPanel.sort = new SelectionSort(toBeSorted,true); + } timer.stop(); } @@ -298,66 +322,70 @@ public static void setUpNG() Runnable bubbleRunnable = new BubbleSort(toBeSorted,false); sorts.add(new Thread(bubbleRunnable, "Bubble Sort")); } - if(sortSTR.equals(sortOptionsNG[2])) + else if(sortSTR.equals(sortOptionsNG[2])) { Runnable cocktailShakerRunnable = new CocktailShakerSort(toBeSorted,false); sorts.add(new Thread (cocktailShakerRunnable, "Cocktail Shaker Sort")); } - if(sortSTR.equals(sortOptionsNG[3])) + else if(sortSTR.equals(sortOptionsNG[3])) { Runnable combRunnable = new CombSort(toBeSorted,false); sorts.add(new Thread(combRunnable, "Comb Sort")); } - if(sortSTR.equals(sortOptionsNG[4])) + else if(sortSTR.equals(sortOptionsNG[4])) { Runnable gnomeBubbleRunnable = new GnomeBubbleSort(toBeSorted,false); sorts.add(new Thread(gnomeBubbleRunnable, "Gnome Bubble Sort")); } - if(sortSTR.equals(sortOptionsNG[5])) + else if(sortSTR.equals(sortOptionsNG[5])) { Runnable gnomeInsertionRunnable = new GnomeInsertionSort(toBeSorted,false); sorts.add(new Thread(gnomeInsertionRunnable, "Gnome Insertion Sort")); } - if(sortSTR.equals(sortOptionsNG[6])) + else if(sortSTR.equals(sortOptionsNG[6])) { Runnable heapRunnable = new HeapSort(toBeSorted,false); sorts.add(new Thread(heapRunnable, "Heap Sort")); } - if(sortSTR.equals(sortOptionsNG[7])) + else if(sortSTR.equals(sortOptionsNG[7])) { Runnable insertionRunnable = new InsertionSort(toBeSorted,false); sorts.add(new Thread(insertionRunnable, "Insertion Sort")); } - if(sortSTR.equals(sortOptionsNG[8])) + else if(sortSTR.equals(sortOptionsNG[8])) { Runnable mergeRunnable = new MergeSort(toBeSorted,false); sorts.add(new Thread(mergeRunnable, "Merge Sort")); } - if(sortSTR.equals(sortOptionsNG[9])) + else if(sortSTR.equals(sortOptionsNG[9])) { Runnable oddEvenRunnable = new OddEvenSort(toBeSorted,false); sorts.add(new Thread(oddEvenRunnable, "Odd-Even Sort")); } - if(sortSTR.equals(sortOptionsNG[10])) + else if(sortSTR.equals(sortOptionsNG[10])) { Runnable quickRunnable = new QuickSort(toBeSorted,false); sorts.add(new Thread(quickRunnable, "Quick Sort")); } - if(sortSTR.equals(sortOptionsNG[11])) + else if(sortSTR.equals(sortOptionsNG[11])) { Runnable radixRunnable = new RadixSort(toBeSorted, getNumDigits(toBeSorted.length),false); sorts.add(new Thread(radixRunnable, "Radix Sort")); } - if(sortSTR.equals(sortOptionsNG[12])) + else if(sortSTR.equals(sortOptionsNG[12])) { Runnable selectionRunnable = new SelectionSort(toBeSorted,false); sorts.add(new Thread(selectionRunnable, "Selection Sort")); } - if(sortSTR.equals(sortOptionsNG[13])) + else if(sortSTR.equals(sortOptionsNG[13])) { Runnable shellRunnable = new ShellSort(toBeSorted,false); sorts.add(new Thread(shellRunnable, "Shell Sort")); } + else + { + System.out.println("Error finding " + sortSTR); + } } } From a21eb68ff124ac17d6af5cbb858c3bbadeaecda5 Mon Sep 17 00:00:00 2001 From: Anthony Montalbano Date: Mon, 17 Apr 2017 18:58:46 -0500 Subject: [PATCH 24/26] Added a selection menu to the gui and some buttons --- DSFinal/src/dsfinal/CombSort.java | 45 +++++++++++++++++++----------- DSFinal/src/dsfinal/ShellSort.java | 3 -- 2 files changed, 29 insertions(+), 19 deletions(-) diff --git a/DSFinal/src/dsfinal/CombSort.java b/DSFinal/src/dsfinal/CombSort.java index 867faa8..8be91ba 100644 --- a/DSFinal/src/dsfinal/CombSort.java +++ b/DSFinal/src/dsfinal/CombSort.java @@ -5,6 +5,8 @@ */ package dsfinal; +import java.awt.Color; + /** * * @author anthnoym @@ -15,6 +17,8 @@ public class CombSort extends SortingUtils protected boolean sortedBol; protected int iNum; final double shrink = 1.3; + protected boolean finishedLoop; + protected int qNum; public CombSort(int[] array, boolean isGraphic) { @@ -25,6 +29,8 @@ public CombSort(int[] array, boolean isGraphic) gapNum = blockArray.length; sortedBol = false; iNum = 0; + qNum = 0; + finishedLoop = false; } } @@ -64,36 +70,43 @@ public void run() public void stepSort() { - if(sortedBol == false) + if(sortedBol == false && iNum <= blockArray.length) { - if(iNum == 0) + for(int i = 0; i < blockArray.length; i++) { - gapNum = (int)(gapNum/shrink); - System.out.println(gapNum); - if(gapNum > 1) - { - sortedBol = false; - } - else - { - gapNum = 1; - sortedBol = true; - } + blockArray[i].color = Color.green; } + + if(iNum + gapNum < blockArray.length) { + blockArray[iNum].color = Color.RED; + blockArray[iNum+gapNum].color = Color.RED; + System.out.println("I " + iNum); + if(blockArray[iNum].value > blockArray[iNum+gapNum].value) { + blockArray[iNum].color = Color.BLUE; + blockArray[iNum + gapNum].color = Color.BLUE; swapGraphic(iNum, iNum+gapNum); sortedBol = false; - iNum++; } + iNum++; } - - if(iNum + gapNum >= blockArray.length) + else { iNum = 0; + finishedLoop = true; + } + + } + else + { + if(qNum < blockArray.length) + { + blockArray[qNum].color = Color.ORANGE; + qNum++; } } } diff --git a/DSFinal/src/dsfinal/ShellSort.java b/DSFinal/src/dsfinal/ShellSort.java index 85f35d3..8a3a4d4 100644 --- a/DSFinal/src/dsfinal/ShellSort.java +++ b/DSFinal/src/dsfinal/ShellSort.java @@ -132,9 +132,6 @@ public void stepSort() } else if(compNum >= 1 && compNum < blockArray.length-1) { - //if((blockArray[compNum].value == blockArray[compNum+1].value) || - // (blockArray[compNum].value > blockArray[compNum-1].value - //|| blockArray[compNum].value < blockArray[compNum+1].value)) if((blockArray[compNum].value >= blockArray[compNum-1].value) & (blockArray[compNum].value <= blockArray[compNum+1].value)) { From c24dcc75671e7b31336594edc3991c32e61b883f Mon Sep 17 00:00:00 2001 From: Anthony Montalbano Date: Tue, 18 Apr 2017 20:04:27 -0500 Subject: [PATCH 25/26] Added a selection menu to the gui and some buttons --- DSFinal/hs_err_pid7124.log | 270 ++++ DSFinal/replay_pid7124.log | 1362 +++++++++++++++++++ DSFinal/src/dsfinal/CocktailShakerSort.java | 13 +- DSFinal/src/dsfinal/CombSort.java | 29 +- DSFinal/src/dsfinal/main.java | 41 +- 5 files changed, 1682 insertions(+), 33 deletions(-) create mode 100644 DSFinal/hs_err_pid7124.log create mode 100644 DSFinal/replay_pid7124.log diff --git a/DSFinal/hs_err_pid7124.log b/DSFinal/hs_err_pid7124.log new file mode 100644 index 0000000..eb7b0f6 --- /dev/null +++ b/DSFinal/hs_err_pid7124.log @@ -0,0 +1,270 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000063c0efc0, pid=7124, tid=3532 +# +# JRE version: Java(TM) SE Runtime Environment (8.0_51-b16) (build 1.8.0_51-b16) +# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.51-b03 mixed mode windows-amd64 compressed oops) +# Problematic frame: +# V [jvm.dll+0xdefc0] +# +# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows +# +# If you would like to submit a bug report, please visit: +# http://bugreport.java.com/bugreport/crash.jsp +# + +--------------- T H R E A D --------------- + +Current thread (0x0000000021173800): JavaThread "C1 CompilerThread2" daemon [_thread_in_vm, id=3532, stack(0x00000000228c0000,0x00000000229c0000)] + +siginfo: ExceptionCode=0xc0000005, reading address 0xffffffffffffffff + +Registers: +RAX=0x00000000033aaf59, RBX=0xf8050601f1000001, RCX=0x0000000012003000, RDX=0xf8050601f1000001 +RSP=0x00000000229bef40, RBP=0x00000000033a6080, RSI=0x0000000002f75ee0, RDI=0x00000000033aaf40 +R8 =0x0000000000000019, R9 =0x0000000000000000, R10=0x0001000002c30c07, R11=0x00000000033aaf40 +R12=0x0000000000000000, R13=0x000000000007d000, R14=0x00000000031926c0, R15=0x0000000022d04a20 +RIP=0x0000000063c0efc0, EFLAGS=0x0000000000010202 + +Top of Stack: (sp=0x00000000229bef40) +0x00000000229bef40: 0000000021174010 000000000000000c +0x00000000229bef50: 0000000000000019 0000000063c0f406 +0x00000000229bef60: 00000000000005f8 0000000002f75ee0 +0x00000000229bef70: 00000000229bf1b8 0000000000000000 +0x00000000229bef80: 00000000000005f8 0000000063bbe8c6 +0x00000000229bef90: 0000000000000000 0000000000000050 +0x00000000229befa0: 00000000229bf1b8 0000000002f7d470 +0x00000000229befb0: 0000000000000023 0000000063bcbd4b +0x00000000229befc0: 0000000002f7bb90 0000000002f7bb90 +0x00000000229befd0: 00000000229bf1b8 00000000229bf179 +0x00000000229befe0: 0000000000000000 00000000247dadb0 +0x00000000229beff0: 00000000ffffffff 00000000000002b0 +0x00000000229bf000: 00000000229bf028 0000000000000000 +0x00000000229bf010: 000000000000000f 0000000063c1ac2b +0x00000000229bf020: 000002b0ffffffff 0000000064105148 +0x00000000229bf030: 0000000000000000 0000000063bcd005 + +Instructions: (pc=0x0000000063c0efc0) +0x0000000063c0efa0: d9 41 8b f9 4d 8b d6 4d 85 f6 0f 84 0d 01 00 00 +0x0000000063c0efb0: 4c 89 6c 24 20 4c 8b 2d 9c 76 6b 00 0f 1f 40 00 +0x0000000063c0efc0: 49 8b 12 49 3b d0 72 28 4d 85 db 74 05 48 3b da +0x0000000063c0efd0: 76 1e 45 84 e4 75 10 48 8b 4e 08 4b 8d 04 02 49 + + +Register to memory mapping: + +RAX= +[error occurred during error reporting (printing register info), id 0xc0000005] + +Stack: [0x00000000228c0000,0x00000000229c0000], sp=0x00000000229bef40, free space=1019k +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +V [jvm.dll+0xdefc0] +V [jvm.dll+0xdf406] +V [jvm.dll+0x8e8c6] +V [jvm.dll+0x9bd4b] +V [jvm.dll+0x3031e] +V [jvm.dll+0x405419] +V [jvm.dll+0x4063d4] +V [jvm.dll+0x406581] +V [jvm.dll+0x40678f] +V [jvm.dll+0xa43a2] +V [jvm.dll+0xa4cdf] +V [jvm.dll+0x2418a4] +V [jvm.dll+0x29846a] +C [msvcr100.dll+0x21d9f] +C [msvcr100.dll+0x21e3b] +C [KERNEL32.DLL+0x8364] +C [ntdll.dll+0x670d1] + + +Current CompileTask: +C1: 4963 898 3 sun.java2d.loops.CompositeType::equals (29 bytes) + + +--------------- P R O C E S S --------------- + +Java Threads: ( => current thread ) + 0x000000002464f800 JavaThread "TimerQueue" daemon [_thread_blocked, id=8620, stack(0x000000002bcf0000,0x000000002bdf0000)] + 0x0000000022d53000 JavaThread "D3D Screen Updater" daemon [_thread_blocked, id=2084, stack(0x00000000292e0000,0x00000000293e0000)] + 0x0000000002f80800 JavaThread "DestroyJavaVM" [_thread_blocked, id=5800, stack(0x0000000002de0000,0x0000000002ee0000)] + 0x00000000245f7800 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=13960, stack(0x0000000028ca0000,0x0000000028da0000)] + 0x0000000022d4a800 JavaThread "AWT-Windows" daemon [_thread_in_native, id=9248, stack(0x00000000235b0000,0x00000000236b0000)] + 0x0000000022d46800 JavaThread "AWT-Shutdown" [_thread_blocked, id=14252, stack(0x00000000234b0000,0x00000000235b0000)] + 0x0000000022d44000 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=12468, stack(0x00000000233b0000,0x00000000234b0000)] + 0x00000000229f0800 JavaThread "Service Thread" daemon [_thread_blocked, id=6888, stack(0x0000000022dc0000,0x0000000022ec0000)] +=>0x0000000021173800 JavaThread "C1 CompilerThread2" daemon [_thread_in_vm, id=3532, stack(0x00000000228c0000,0x00000000229c0000)] + 0x0000000021170800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=3624, stack(0x00000000227c0000,0x00000000228c0000)] + 0x000000002116c800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=10944, stack(0x00000000226c0000,0x00000000227c0000)] + 0x000000002116b000 JavaThread "Attach Listener" daemon [_thread_blocked, id=8668, stack(0x00000000225c0000,0x00000000226c0000)] + 0x000000002116a000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=12948, stack(0x00000000224c0000,0x00000000225c0000)] + 0x0000000003076000 JavaThread "Finalizer" daemon [_thread_blocked, id=7540, stack(0x00000000223c0000,0x00000000224c0000)] + 0x000000000306d000 JavaThread "Reference Handler" daemon [_thread_blocked, id=11384, stack(0x00000000222c0000,0x00000000223c0000)] + +Other Threads: + 0x0000000021137800 VMThread [stack: 0x00000000221c0000,0x00000000222c0000] [id=9340] + 0x000000002117e000 WatcherThread [stack: 0x0000000022ec0000,0x0000000022fc0000] [id=6332] + +VM state:not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) +[0x0000000002f7bb90] CodeCache_lock - owner thread: 0x0000000021173800 +[0x0000000002f7d470] Compile_lock - owner thread: 0x0000000021173800 +[0x0000000002f7e270] MethodCompileQueue_lock - owner thread: 0x0000000021173800 + +Heap: + PSYoungGen total 114688K, used 17695K [0x0000000740500000, 0x0000000748500000, 0x00000007c0000000) + eden space 98304K, 18% used [0x0000000740500000,0x0000000741647eb8,0x0000000746500000) + from space 16384K, 0% used [0x0000000747500000,0x0000000747500000,0x0000000748500000) + to space 16384K, 0% used [0x0000000746500000,0x0000000746500000,0x0000000747500000) + ParOldGen total 262144K, used 0K [0x0000000640e00000, 0x0000000650e00000, 0x0000000740500000) + object space 262144K, 0% used [0x0000000640e00000,0x0000000640e00000,0x0000000650e00000) + Metaspace used 10464K, capacity 10628K, committed 10880K, reserved 1058816K + class space used 1279K, capacity 1350K, committed 1408K, reserved 1048576K + +Card table byte_map: [0x0000000012440000,0x0000000013040000] byte_map_base: 0x000000000f239000 + +Marking Bits: (ParMarkBitMap*) 0x0000000064334040 + Begin Bits: [0x0000000013c40000, 0x0000000019c08000) + End Bits: [0x0000000019c08000, 0x000000001fbd0000) + +Polling page: 0x0000000002d80000 + +CodeCache: size=245760Kb used=3297Kb max_used=3297Kb free=242462Kb + bounds [0x0000000003080000, 0x00000000033c0000, 0x0000000012080000] + total_blobs=1367 nmethods=897 adapters=382 + compilation: enabled + +Compilation events (10 events): +Event: 4.877 Thread 0x0000000021173800 nmethod 893 0x00000000033b3a90 code [0x00000000033b3c00, 0x00000000033b3e10] +Event: 4.891 Thread 0x0000000021173800 894 3 sun.java2d.pipe.BufferedContext::setSurfaces (49 bytes) +Event: 4.893 Thread 0x0000000021173800 nmethod 894 0x00000000033b3ed0 code [0x00000000033b40c0, 0x00000000033b4ea8] +Event: 4.902 Thread 0x0000000021173800 895 1 javax.swing.plaf.basic.BasicSliderUI::access$200 (5 bytes) +Event: 4.902 Thread 0x0000000021173800 nmethod 895 0x00000000033b54d0 code [0x00000000033b5620, 0x00000000033b5710] +Event: 4.902 Thread 0x0000000021173800 896 1 javax.swing.DefaultBoundedRangeModel::getValueIsAdjusting (5 bytes) +Event: 4.902 Thread 0x0000000021173800 nmethod 896 0x00000000033b5790 code [0x00000000033b58e0, 0x00000000033b59f0] +Event: 4.903 Thread 0x0000000021173800 897 3 sun.java2d.loops.Blit::getFromCache (132 bytes) +Event: 4.908 Thread 0x0000000021173800 nmethod 897 0x00000000033b5a50 code [0x00000000033b5e80, 0x00000000033b88b8] +Event: 4.924 Thread 0x0000000021173800 898 3 sun.java2d.loops.CompositeType::equals (29 bytes) + +GC Heap History (0 events): +No events + +Deoptimization events (7 events): +Event: 0.153 Thread 0x0000000002f80800 Uncommon trap: reason=null_check action=make_not_entrant pc=0x00000000031f761c method=java.lang.String.equals(Ljava/lang/Object;)Z @ 8 +Event: 1.872 Thread 0x00000000245f7800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003208518 method=java.lang.String.equals(Ljava/lang/Object;)Z @ 8 +Event: 1.872 Thread 0x00000000245f7800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003208518 method=java.lang.String.equals(Ljava/lang/Object;)Z @ 8 +Event: 1.872 Thread 0x00000000245f7800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003208518 method=java.lang.String.equals(Ljava/lang/Object;)Z @ 8 +Event: 2.351 Thread 0x00000000245f7800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003208518 method=java.lang.String.equals(Ljava/lang/Object;)Z @ 8 +Event: 2.353 Thread 0x00000000245f7800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000032edcf4 method=java.awt.Component.inside(II)Z @ 1 +Event: 3.849 Thread 0x00000000245f7800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000000333d434 method=java.awt.Container.findComponentAtImpl(IIZ)Ljava/awt/Component; @ 28 + +Internal exceptions (10 events): +Event: 0.028 Thread 0x0000000002f80800 Exception (0x000000074050d838) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u51\3951\hotspot\src\share\vm\prims\jŸ ¬!@µ? +Event: 0.082 Thread 0x0000000002f80800 Exception (0x0000000740590da0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u51\3951\hotspot\src\share\vm\prims\jvm.cpp, line 1382] +Event: 0.082 Thread 0x0000000002f80800 Exception (0x0000000740590f58) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u51\3951\hotspot\src\share\vm\prims\jvm.cpp, line 1382] +Event: 0.083 Thread 0x0000000002f80800 Exception (0x0000000740594cf0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u51\3951\hotspot\src\share\vm\prims\jvm.cpp, line 1382] +Event: 0.083 Thread 0x0000000002f80800 Exception (0x0000000740594ea8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u51\3951\hotspot\src\share\vm\prims\jvm.cpp, line 1382] +Event: 0.087 Thread 0x0000000002f80800 Exception (0x0000000740597458) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u51\3951\hotspot\src\share\vm\prims\jni.cpp, line 709] +Event: 0.132 Thread 0x0000000002f80800 Exception (0x0000000740680540) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u51\3951\hotspot\src\share\vm\prims\methodHandles.cpp, line 1125] +Event: 0.133 Thread 0x0000000002f80800 Exception (0x000000074068ef80) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u51\3951\hotspot\src\share\vm\prims\methodHandles.cpp, line 1125] +Event: 0.153 Thread 0x0000000002f80800 Implicit null exception at 0x00000000031f7426 to 0x00000000031f760d +Event: 0.157 Thread 0x0000000002f80800 Exception (0x0000000740b30390) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u51\3951\hotspot\src\share\vm\prims\jni.cpp, line 709] + +Events (10 events): +Event: 3.767 loading class javax/swing/plaf/basic/BasicComboBoxUI done +Event: 3.772 loading class javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber$2 +Event: 3.773 loading class javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber$2 done +Event: 3.773 loading class java/awt/KeyboardFocusManager$4 +Event: 3.774 loading class java/awt/KeyboardFocusManager$4 done +Event: 3.849 Thread 0x00000000245f7800 Uncommon trap: trap_request=0xffffff65 fr.pc=0x000000000333d434 +Event: 3.849 Thread 0x00000000245f7800 DEOPT PACKING pc=0x000000000333d434 sp=0x0000000028d9c7d0 +Event: 3.849 Thread 0x00000000245f7800 DEOPT UNPACKING pc=0x00000000030c582a sp=0x0000000028d9c708 mode 2 +Event: 4.067 Executing VM operation: EnableBiasedLocking +Event: 4.067 Executing VM operation: EnableBiasedLocking done + + +Dynamic libraries: +0x00007ff6e0af0000 - 0x00007ff6e0b27000 C:\Program Files\Java\jdk1.8.0_51\jre\bin\java.exe +0x00007ffd8ba00000 - 0x00007ffd8bbd1000 C:\WINDOWS\SYSTEM32\ntdll.dll +0x00007ffd8b820000 - 0x00007ffd8b8cb000 C:\WINDOWS\System32\KERNEL32.DLL +0x00007ffd88960000 - 0x00007ffd88b7d000 C:\WINDOWS\System32\KERNELBASE.dll +0x00007ffd8aa70000 - 0x00007ffd8ab12000 C:\WINDOWS\System32\ADVAPI32.dll +0x00007ffd8b510000 - 0x00007ffd8b5ae000 C:\WINDOWS\System32\msvcrt.dll +0x00007ffd8b7c0000 - 0x00007ffd8b819000 C:\WINDOWS\System32\sechost.dll +0x00007ffd8a4a0000 - 0x00007ffd8a5c1000 C:\WINDOWS\System32\RPCRT4.dll +0x00007ffd8b5b0000 - 0x00007ffd8b715000 C:\WINDOWS\System32\USER32.dll +0x00007ffd87f50000 - 0x00007ffd87f6e000 C:\WINDOWS\System32\win32u.dll +0x00007ffd8a630000 - 0x00007ffd8a664000 C:\WINDOWS\System32\GDI32.dll +0x00007ffd88e00000 - 0x00007ffd88f82000 C:\WINDOWS\System32\gdi32full.dll +0x00007ffd7dd70000 - 0x00007ffd7dfea000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.14393.953_none_42151e83c686086b\COMCTL32.dll +0x00007ffd8a670000 - 0x00007ffd8a938000 C:\WINDOWS\System32\combase.dll +0x00007ffd87fe0000 - 0x00007ffd880d5000 C:\WINDOWS\System32\ucrtbase.dll +0x00007ffd87f70000 - 0x00007ffd87fda000 C:\WINDOWS\System32\bcryptPrimitives.dll +0x00007ffd8b160000 - 0x00007ffd8b18e000 C:\WINDOWS\System32\IMM32.DLL +0x00000000650a0000 - 0x0000000065172000 C:\Program Files\Java\jdk1.8.0_51\jre\bin\msvcr100.dll +0x0000000063b30000 - 0x00000000643b3000 C:\Program Files\Java\jdk1.8.0_51\jre\bin\server\jvm.dll +0x00007ffd8b8f0000 - 0x00007ffd8b8f8000 C:\WINDOWS\System32\PSAPI.DLL +0x00007ffd80390000 - 0x00007ffd80399000 C:\WINDOWS\SYSTEM32\WSOCK32.dll +0x00007ffd85fa0000 - 0x00007ffd85fc3000 C:\WINDOWS\SYSTEM32\WINMM.dll +0x00007ffd84160000 - 0x00007ffd8416a000 C:\WINDOWS\SYSTEM32\VERSION.dll +0x00007ffd8a940000 - 0x00007ffd8a9aa000 C:\WINDOWS\System32\WS2_32.dll +0x0000000002db0000 - 0x0000000002ddb000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll +0x00007ffd88230000 - 0x00007ffd88272000 C:\WINDOWS\System32\cfgmgr32.dll +0x00000000656f0000 - 0x00000000656ff000 C:\Program Files\Java\jdk1.8.0_51\jre\bin\verify.dll +0x00000000656c0000 - 0x00000000656e9000 C:\Program Files\Java\jdk1.8.0_51\jre\bin\java.dll +0x00000000656a0000 - 0x00000000656b6000 C:\Program Files\Java\jdk1.8.0_51\jre\bin\zip.dll +0x00007ffd88f90000 - 0x00007ffd8a498000 C:\WINDOWS\System32\SHELL32.dll +0x00007ffd88280000 - 0x00007ffd8895a000 C:\WINDOWS\System32\windows.storage.dll +0x00007ffd87e80000 - 0x00007ffd87ecc000 C:\WINDOWS\System32\powrprof.dll +0x00007ffd8acd0000 - 0x00007ffd8ad22000 C:\WINDOWS\System32\shlwapi.dll +0x00007ffd87ed0000 - 0x00007ffd87edf000 C:\WINDOWS\System32\kernel.appcore.dll +0x00007ffd88180000 - 0x00007ffd88229000 C:\WINDOWS\System32\shcore.dll +0x00007ffd87e60000 - 0x00007ffd87e74000 C:\WINDOWS\System32\profapi.dll +0x0000000064ec0000 - 0x0000000065058000 C:\Program Files\Java\jdk1.8.0_51\jre\bin\awt.dll +0x00007ffd8a9b0000 - 0x00007ffd8aa6f000 C:\WINDOWS\System32\OLEAUT32.dll +0x00007ffd880e0000 - 0x00007ffd8817c000 C:\WINDOWS\System32\msvcp_win.dll +0x00007ffd863e0000 - 0x00007ffd8645a000 C:\WINDOWS\SYSTEM32\apphelp.dll +0x00007ffd864e0000 - 0x00007ffd86575000 C:\WINDOWS\system32\uxtheme.dll +0x00007ffd8b190000 - 0x00007ffd8b2ea000 C:\WINDOWS\System32\MSCTF.dll +0x00007ffd85930000 - 0x00007ffd85956000 C:\WINDOWS\system32\dwmapi.dll +0x00007ffd8ab20000 - 0x00007ffd8ac57000 C:\WINDOWS\System32\ole32.dll +0x0000000064e70000 - 0x0000000064eb7000 C:\Program Files\Java\jdk1.8.0_51\jre\bin\fontmanager.dll +0x00007ffd74120000 - 0x00007ffd742ad000 C:\WINDOWS\system32\d3d9.dll +0x00007ffd83e20000 - 0x00007ffd83fa1000 C:\WINDOWS\System32\DriverStore\FileRepository\c0311139.inf_amd64_2aa9c01a2af97538\aticfx64.dll +0x00007ffd59fb0000 - 0x00007ffd59fd9000 C:\WINDOWS\System32\DriverStore\FileRepository\c0311139.inf_amd64_2aa9c01a2af97538\atiu9p64.dll +0x00007ffd59670000 - 0x00007ffd59fa4000 C:\WINDOWS\System32\DriverStore\FileRepository\c0311139.inf_amd64_2aa9c01a2af97538\atiumd64.dll +0x00000000657a0000 - 0x000000006639b000 C:\WINDOWS\System32\DriverStore\FileRepository\c0311139.inf_amd64_2aa9c01a2af97538\atiumd6a.dll +0x0000000065080000 - 0x000000006509a000 C:\Program Files\Java\jdk1.8.0_51\jre\bin\net.dll +0x00007ffd87790000 - 0x00007ffd877ec000 C:\WINDOWS\system32\mswsock.dll +0x0000000065060000 - 0x0000000065071000 C:\Program Files\Java\jdk1.8.0_51\jre\bin\nio.dll +0x0000000064e20000 - 0x0000000064e62000 C:\Program Files\Java\jdk1.8.0_51\jre\bin\t2k.dll +0x00007ffd76f30000 - 0x00007ffd770c2000 C:\WINDOWS\SYSTEM32\dbghelp.dll + +VM Arguments: +jvm_args: -Dfile.encoding=UTF-8 +java_command: dsfinal.main +java_class_path (initial): F:\AP Comp\Adv Comp Sci\DataStructuresFinal\DSFinal\build\classes +Launcher Type: SUN_STANDARD + +Environment Variables: +PATH=C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\AMD\ATI.ACE\Core-Static;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\;C:\Program Files\Common Files\Autodesk Shared\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Java\jdk1.8.0_51\bin\;C:\Program Files\LLVM\bin;C:\Users\Anthony\AppData\Local\atom\bin;C:\Users\Anthony\AppData\Local\Microsoft\WindowsApps +USERNAME=Anthony +OS=Windows_NT +PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 60 Stepping 3, GenuineIntel + + + +--------------- S Y S T E M --------------- + +OS: Windows 10.0 , 64 bit Build 14393 (10.0.14393.0) + +CPU:total 4 (4 cores per cpu, 1 threads per core) family 6 model 60 stepping 3, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, lzcnt, tsc, tscinvbit, bmi1, bmi2 + +Memory: 4k page, physical 25103388k(19376892k free), swap 36899868k(28921152k free) + +vm_info: Java HotSpot(TM) 64-Bit Server VM (25.51-b03) for windows-amd64 JRE (1.8.0_51-b16), built on Jun 8 2015 18:03:07 by "java_re" with MS VC++ 10.0 (VS2010) + +time: Tue Apr 18 19:34:10 2017 +elapsed time: 4 seconds (0d 0h 0m 4s) + diff --git a/DSFinal/replay_pid7124.log b/DSFinal/replay_pid7124.log new file mode 100644 index 0000000..3d1edd1 --- /dev/null +++ b/DSFinal/replay_pid7124.log @@ -0,0 +1,1362 @@ +JvmtiExport can_access_local_variables 0 +JvmtiExport can_hotswap_or_post_breakpoint 0 +JvmtiExport can_post_on_exceptions 0 +# 102 ciObject found +ciMethod sun/java2d/loops/CompositeType equals (Ljava/lang/Object;)Z 2049 1 256 0 -1 +ciMethodData sun/java2d/loops/CompositeType equals (Ljava/lang/Object;)Z 1 256 orig 264 136 112 16 100 0 0 0 0 64 160 244 32 0 0 0 0 8 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 184 0 0 0 255 255 255 255 4 0 1 0 0 0 0 0 data 23 0x10004 0x0 0x0 0x0 0x0 0x0 0x40007 0x0 0x88 0x0 0x80004 0x0 0x0 0x0 0x0 0x0 0x120007 0x0 0x38 0x0 0x160003 0x0 0x18 oops 0 +instanceKlass java/awt/KeyboardFocusManager$4 +instanceKlass javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber$2 +instanceKlass javax/swing/Timer$1 +instanceKlass javax/swing/TimerQueue$DelayedTimer +instanceKlass java/util/concurrent/Delayed +instanceKlass javax/swing/TimerQueue$1 +instanceKlass java/util/concurrent/BlockingQueue +instanceKlass javax/swing/TimerQueue +instanceKlass javax/swing/Popup +instanceKlass javax/swing/ClientPropertyKey$1 +instanceKlass sun/awt/AWTAccessor$ClientPropertyKeyAccessor +instanceKlass sun/awt/ModalExclude +instanceKlass javax/swing/PopupFactory +instanceKlass javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber$1 +instanceKlass javax/sound/sampled/LineListener +instanceKlass javax/swing/event/MenuListener +instanceKlass java/awt/AWTEvent$2 +instanceKlass java/awt/LightweightDispatcher$1 +instanceKlass java/awt/Container$MouseEventTargetFilter +instanceKlass java/awt/Container$EventTargetFilter +instanceKlass java/text/AttributedString$AttributedStringIterator +instanceKlass java/text/AttributedCharacterIterator +instanceKlass java/text/CharacterIterator +instanceKlass java/text/AttributedString +instanceKlass sun/awt/im/CompositionAreaHandler +instanceKlass java/util/Collections$EmptyIterator +instanceKlass sun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar +instanceKlass sun/util/locale/InternalLocaleBuilder +instanceKlass sun/util/locale/StringTokenIterator +instanceKlass sun/util/locale/ParseStatus +instanceKlass sun/util/locale/LanguageTag +instanceKlass sun/awt/im/InputMethodAdapter +instanceKlass java/awt/im/spi/InputMethod +instanceKlass java/awt/im/spi/InputMethodContext +instanceKlass java/awt/im/InputMethodRequests +instanceKlass java/awt/im/InputContext +instanceKlass java/awt/KeyboardFocusManager$3 +instanceKlass sun/java2d/cmm/CMSManager +instanceKlass sun/java2d/loops/GraphicsPrimitive$GeneralBinaryOp +instanceKlass sun/java2d/pipe/ShapeSpanIterator +instanceKlass sun/awt/geom/PathConsumer2D +instanceKlass sun/java2d/pipe/SpanIterator +instanceKlass java/awt/geom/Path2D$Iterator +instanceKlass java/awt/Polygon$PolygonPathIterator +instanceKlass java/awt/geom/PathIterator +instanceKlass sun/awt/image/BufImgSurfaceData$ICMColorData +instanceKlass java/awt/image/BufferedImage$1 +instanceKlass java/awt/image/WritableRenderedImage +instanceKlass java/awt/image/RenderedImage +instanceKlass sun/awt/image/NativeLibLoader$1 +instanceKlass sun/awt/image/NativeLibLoader +instanceKlass java/awt/image/SampleModel +instanceKlass java/awt/image/DataBuffer$1 +instanceKlass sun/awt/image/SunWritableRaster$DataStealer +instanceKlass java/awt/image/DataBuffer +instanceKlass java/awt/image/Raster +instanceKlass sun/java2d/loops/FontInfo +instanceKlass java/awt/PrintGraphics +instanceKlass java/awt/print/PrinterGraphics +instanceKlass sun/swing/MenuItemLayoutHelper$ColumnAlignment +instanceKlass sun/swing/MenuItemLayoutHelper$LayoutResult +instanceKlass sun/awt/image/MultiResolutionImage +instanceKlass sun/java2d/d3d/D3DPaints +instanceKlass java/awt/GradientPaint +instanceKlass sun/swing/ImageCache$Entry +instanceKlass javax/swing/plaf/metal/MetalUtils +instanceKlass sun/awt/SunGraphicsCallback +instanceKlass sun/java2d/d3d/D3DScreenUpdateManager$$Lambda$16 +instanceKlass sun/java2d/pipe/BufferedPaints +instanceKlass dsfinal/main$1 +instanceKlass sun/java2d/d3d/D3DSurfaceData$1 +instanceKlass sun/java2d/d3d/D3DSurfaceData$1Status +instanceKlass javax/swing/RepaintManager$4 +instanceKlass java/awt/Cursor$CursorDisposer +instanceKlass sun/java2d/StateTrackableDelegate$1 +instanceKlass sun/java2d/d3d/D3DBlitLoops +instanceKlass sun/java2d/loops/ProcessPath$DrawHandler +instanceKlass sun/java2d/pipe/BufferedRenderPipe$AAParallelogramPipe +instanceKlass sun/java2d/pipe/BufferedRenderPipe +instanceKlass sun/java2d/pipe/hw/AccelSurface +instanceKlass sun/swing/MenuItemLayoutHelper$RectSize +instanceKlass javax/swing/SizeRequirements +instanceKlass java/awt/KeyboardFocusManager$LightweightFocusRequest +instanceKlass java/awt/DefaultKeyboardFocusManager$TypeAheadMarker +instanceKlass java/awt/KeyboardFocusManager$HeavyweightFocusRequest +instanceKlass javax/swing/KeyboardManager$ComponentKeyStrokePair +instanceKlass sun/awt/GlobalCursorManager$NativeUpdater +instanceKlass sun/awt/GlobalCursorManager +instanceKlass java/awt/SequencedEvent$1 +instanceKlass sun/awt/AWTAccessor$SequencedEventAccessor +instanceKlass java/util/concurrent/locks/LockSupport +instanceKlass java/awt/SplashScreen +instanceKlass java/awt/EventQueue$4 +instanceKlass sun/awt/NullComponentPeer +instanceKlass java/awt/peer/LightweightPeer +instanceKlass sun/awt/im/ExecutableInputMethodManager$3 +instanceKlass sun/awt/im/InputMethodLocator +instanceKlass sun/awt/windows/WInputMethodDescriptor +instanceKlass java/awt/im/spi/InputMethodDescriptor +instanceKlass sun/awt/im/InputMethodManager +instanceKlass sun/awt/FontConfiguration$2 +instanceKlass javax/swing/RepaintManager$2$1 +instanceKlass java/util/LinkedList$ListItr +instanceKlass java/awt/TrayIcon +instanceKlass sun/awt/NativeLibLoader$1 +instanceKlass sun/awt/NativeLibLoader +instanceKlass java/awt/MenuComponent +instanceKlass sun/awt/PlatformFont +instanceKlass java/awt/peer/FontPeer +instanceKlass java/awt/EventQueue$3 +instanceKlass sun/awt/dnd/SunDragSourceContextPeer +instanceKlass java/awt/dnd/peer/DragSourceContextPeer +instanceKlass javax/swing/RepaintManager$2 +instanceKlass sun/awt/windows/WComponentPeer$2 +instanceKlass sun/awt/windows/WColor +instanceKlass sun/awt/EventQueueDelegate +instanceKlass java/awt/ModalEventFilter +instanceKlass java/awt/EventDispatchThread$HierarchyEventFilter +instanceKlass java/awt/EventFilter +instanceKlass java/awt/EventDispatchThread$1 +instanceKlass java/awt/Conditional +instanceKlass sun/awt/EventQueueItem +instanceKlass java/awt/EventQueue$5 +instanceKlass java/awt/event/InvocationEvent$1 +instanceKlass sun/awt/AWTAccessor$InvocationEventAccessor +instanceKlass java/awt/ActiveEvent +instanceKlass sun/java2d/StateTracker$2 +instanceKlass sun/java2d/StateTracker$1 +instanceKlass sun/java2d/StateTracker +instanceKlass sun/java2d/SurfaceDataProxy +instanceKlass sun/awt/image/SurfaceManager$FlushableCacheData +instanceKlass sun/java2d/DefaultDisposerRecord +instanceKlass java/util/TimSort +instanceKlass sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec +instanceKlass sun/java2d/loops/RenderLoops +instanceKlass sun/java2d/windows/GDIRenderer +instanceKlass sun/java2d/loops/GraphicsPrimitiveMgr$2 +instanceKlass sun/java2d/loops/GraphicsPrimitiveMgr$1 +instanceKlass sun/java2d/loops/GeneralRenderer +instanceKlass sun/java2d/loops/CustomComponent +instanceKlass sun/java2d/pipe/ValidatePipe +instanceKlass java/awt/BasicStroke +instanceKlass java/awt/Stroke +instanceKlass java/awt/AlphaComposite +instanceKlass sun/awt/ConstrainableGraphics +instanceKlass sun/java2d/loops/CompositeType +instanceKlass sun/java2d/loops/GraphicsPrimitiveMgr +instanceKlass sun/java2d/loops/GraphicsPrimitive +instanceKlass sun/java2d/loops/XORComposite +instanceKlass java/awt/Composite +instanceKlass sun/java2d/d3d/D3DScreenUpdateManager$$Lambda$15 +instanceKlass sun/java2d/d3d/D3DScreenUpdateManager$$Lambda$14 +instanceKlass sun/java2d/ScreenUpdateManager +instanceKlass sun/awt/im/InputMethodWindow +instanceKlass sun/awt/ExtendedKeyCodes +instanceKlass sun/awt/RepaintArea +instanceKlass sun/awt/windows/WWindowPeer$GuiDisposedListener +instanceKlass sun/awt/windows/WWindowPeer$ActiveWindowListener +instanceKlass java/awt/peer/CanvasPeer +instanceKlass java/awt/peer/PanelPeer +instanceKlass java/awt/peer/FramePeer +instanceKlass java/awt/peer/WindowPeer +instanceKlass java/awt/peer/ContainerPeer +instanceKlass javax/swing/LayoutComparator +instanceKlass java/util/function/IntBinaryOperator +instanceKlass java/util/function/LongBinaryOperator +instanceKlass java/util/function/DoubleBinaryOperator +instanceKlass java/util/function/BinaryOperator +instanceKlass java/util/function/BiFunction +instanceKlass java/util/function/IntToDoubleFunction +instanceKlass java/util/function/IntToLongFunction +instanceKlass java/util/function/IntUnaryOperator +instanceKlass java/util/function/IntFunction +instanceKlass java/util/stream/LongStream +instanceKlass java/util/stream/DoubleStream +instanceKlass java/util/stream/Stream +instanceKlass java/util/stream/IntStream +instanceKlass java/util/stream/BaseStream +instanceKlass java/util/Spliterator$OfDouble +instanceKlass java/util/Spliterator$OfInt +instanceKlass java/util/Spliterator$OfLong +instanceKlass java/util/Spliterator$OfPrimitive +instanceKlass java/util/Spliterator +instanceKlass javax/swing/SortingFocusTraversalPolicy$1 +instanceKlass javax/swing/RepaintManager$PaintManager +instanceKlass javax/swing/JRootPane$RootLayout +instanceKlass java/awt/Window$WindowDisposerRecord +instanceKlass java/awt/BorderLayout +instanceKlass java/awt/Cursor$1 +instanceKlass sun/awt/AWTAccessor$CursorAccessor +instanceKlass java/awt/Cursor +instanceKlass java/awt/Frame$1 +instanceKlass sun/awt/AWTAccessor$FrameAccessor +instanceKlass java/awt/Window$1 +instanceKlass sun/awt/AWTAccessor$WindowAccessor +instanceKlass javax/swing/RootPaneContainer +instanceKlass javax/swing/WindowConstants +instanceKlass sun/font/CMap +instanceKlass sun/font/T2KFontScaler$1 +instanceKlass sun/font/FontScaler +instanceKlass sun/font/TrueTypeFont$DirectoryEntry +instanceKlass java/nio/DirectByteBuffer$Deallocator +instanceKlass sun/nio/ch/Util$BufferCache +instanceKlass sun/nio/ch/Util +instanceKlass sun/nio/ch/IOStatus +instanceKlass sun/nio/ch/NativeThread +instanceKlass java/nio/channels/spi/AbstractInterruptibleChannel$1 +instanceKlass sun/nio/ch/NativeDispatcher +instanceKlass sun/nio/ch/NativeThreadSet +instanceKlass sun/nio/ch/IOUtil$1 +instanceKlass sun/nio/ch/IOUtil +instanceKlass java/nio/file/attribute/FileAttribute +instanceKlass java/nio/channels/spi/AbstractInterruptibleChannel +instanceKlass java/nio/channels/InterruptibleChannel +instanceKlass java/nio/channels/ScatteringByteChannel +instanceKlass java/nio/channels/GatheringByteChannel +instanceKlass java/nio/channels/SeekableByteChannel +instanceKlass java/nio/channels/ByteChannel +instanceKlass java/nio/channels/WritableByteChannel +instanceKlass java/nio/channels/ReadableByteChannel +instanceKlass java/nio/channels/Channel +instanceKlass java/io/RandomAccessFile +instanceKlass java/io/DataOutput +instanceKlass sun/font/TrueTypeFont$1 +instanceKlass sun/font/TrueTypeFont$TTDisposerRecord +instanceKlass sun/font/StrikeCache$DisposableStrike +instanceKlass sun/font/FontStrikeDisposer +instanceKlass sun/java2d/Disposer$PollDisposable +instanceKlass sun/font/FontStrikeDesc +instanceKlass sun/font/FontDesignMetrics$MetricsKey +instanceKlass java/awt/GraphicsConfiguration +instanceKlass sun/awt/image/SurfaceManager$ProxiedGraphicsConfig +instanceKlass sun/java2d/pipe/hw/AccelGraphicsConfig +instanceKlass sun/java2d/pipe/hw/BufferedContextProvider +instanceKlass sun/java2d/pipe/BufferedContext +instanceKlass sun/java2d/pipe/hw/ContextCapabilities +instanceKlass sun/java2d/d3d/D3DGraphicsDevice$1 +instanceKlass sun/java2d/d3d/D3DGraphicsDevice$1Result +instanceKlass sun/java2d/d3d/D3DRenderQueue$1 +instanceKlass sun/java2d/pipe/RenderBuffer +instanceKlass sun/java2d/pipe/RenderQueue +instanceKlass sun/misc/PerfCounter$WindowsClientCounters +instanceKlass java/awt/GraphicsDevice +instanceKlass sun/awt/Win32FontManager$2 +instanceKlass java/util/TreeMap$Entry +instanceKlass java/lang/ProcessEnvironment$CheckedEntry +instanceKlass java/lang/ProcessEnvironment$CheckedEntrySet$1 +instanceKlass java/util/NavigableMap +instanceKlass java/util/SortedMap +instanceKlass java/util/Collections$UnmodifiableMap +instanceKlass java/lang/ProcessEnvironment$EntryComparator +instanceKlass java/lang/ProcessEnvironment$NameComparator +instanceKlass sun/font/SunFontManager$3 +instanceKlass sun/font/FontFamily +instanceKlass sun/font/Font2DHandle +instanceKlass sun/font/CompositeFontDescriptor +instanceKlass sun/awt/FontDescriptor +instanceKlass sun/awt/FontConfiguration +instanceKlass sun/font/SunFontManager$FontRegistrationInfo +instanceKlass sun/font/SunFontManager$2 +instanceKlass sun/awt/Win32FontManager$1 +instanceKlass sun/font/FontManagerFactory$1 +instanceKlass sun/font/FontManagerFactory +instanceKlass sun/font/GlyphList +instanceKlass sun/font/StrikeCache$1 +instanceKlass sun/font/StrikeCache +instanceKlass sun/font/FontStrike +instanceKlass sun/font/CharToGlyphMapper +instanceKlass java/awt/geom/Path2D +instanceKlass sun/font/StrikeMetrics +instanceKlass java/awt/geom/Point2D +instanceKlass sun/font/Font2D +instanceKlass sun/font/FontUtilities$1 +instanceKlass sun/font/FontUtilities +instanceKlass sun/font/FontManagerNativeLibrary$1 +instanceKlass sun/font/FontManagerNativeLibrary +instanceKlass sun/font/SunFontManager$1 +instanceKlass sun/font/SunFontManager$T1Filter +instanceKlass sun/font/SunFontManager$TTFilter +instanceKlass java/io/FilenameFilter +instanceKlass sun/font/SunFontManager +instanceKlass sun/font/FontManagerForSGE +instanceKlass sun/font/FontManager +instanceKlass sun/java2d/FontSupport +instanceKlass java/awt/FontMetrics +instanceKlass dsfinal/main$5 +instanceKlass javax/swing/Timer$DoPostEvent +instanceKlass javax/swing/Timer +instanceKlass javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler +instanceKlass javax/swing/plaf/basic/BasicSliderUI$ScrollListener +instanceKlass javax/swing/plaf/basic/BasicSliderUI$Handler +instanceKlass java/awt/event/MouseAdapter +instanceKlass sun/swing/ImageCache +instanceKlass java/awt/Polygon +instanceKlass sun/swing/CachedPainter +instanceKlass sun/swing/UIAction +instanceKlass javax/swing/DefaultBoundedRangeModel +instanceKlass javax/swing/BoundedRangeModel +instanceKlass javax/swing/JSlider$ModelListener +instanceKlass dsfinal/main$4 +instanceKlass dsfinal/main$3 +instanceKlass dsfinal/main$2 +instanceKlass javax/swing/plaf/metal/MetalBorders +instanceKlass dsfinal/main$$Lambda$13 +instanceKlass javax/swing/AbstractAction +instanceKlass javax/swing/Action +instanceKlass javax/swing/plaf/basic/BasicRadioButtonUI$KeyHandler +instanceKlass javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon +instanceKlass sun/reflect/ClassDefiner$1 +instanceKlass sun/reflect/ClassDefiner +instanceKlass sun/reflect/MethodAccessorGenerator$1 +instanceKlass sun/reflect/Label$PatchInfo +instanceKlass sun/reflect/Label +instanceKlass sun/reflect/UTF8 +instanceKlass sun/reflect/ClassFileAssembler +instanceKlass sun/reflect/ByteVectorImpl +instanceKlass sun/reflect/ByteVector +instanceKlass sun/reflect/ByteVectorFactory +instanceKlass sun/reflect/AccessorGenerator +instanceKlass sun/reflect/ClassFileConstants +instanceKlass java/awt/event/WindowAdapter +instanceKlass java/awt/event/FocusAdapter +instanceKlass javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper +instanceKlass javax/swing/MenuSelectionManager +instanceKlass javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber +instanceKlass javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener +instanceKlass javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener +instanceKlass javax/swing/event/PopupMenuListener +instanceKlass javax/swing/plaf/basic/BasicLookAndFeel$1 +instanceKlass java/awt/Toolkit$SelectiveAWTEventListener +instanceKlass javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper +instanceKlass java/beans/VetoableChangeListener +instanceKlass javax/swing/event/AncestorListener +instanceKlass javax/swing/plaf/basic/BasicButtonListener +instanceKlass javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon +instanceKlass javax/swing/plaf/basic/BasicBorders +instanceKlass javax/swing/ButtonGroup +instanceKlass javax/swing/plaf/basic/BasicMenuItemUI$Handler +instanceKlass javax/swing/event/MouseInputListener +instanceKlass javax/swing/event/MenuDragMouseListener +instanceKlass javax/swing/event/MenuKeyListener +instanceKlass javax/swing/plaf/basic/BasicHTML +instanceKlass sun/swing/MenuItemLayoutHelper +instanceKlass javax/swing/plaf/basic/BasicGraphicsUtils +instanceKlass javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon +instanceKlass javax/swing/Icon +instanceKlass javax/swing/plaf/metal/MetalIconFactory +instanceKlass javax/swing/JMenuItem$MenuItemFocusListener +instanceKlass javax/swing/JMenu$MenuChangeListener +instanceKlass javax/swing/AbstractButton$Handler +instanceKlass javax/swing/DefaultButtonModel +instanceKlass javax/swing/ButtonModel +instanceKlass javax/swing/ActionMap +instanceKlass javax/swing/KeyboardManager +instanceKlass javax/swing/ArrayTable +instanceKlass java/awt/event/KeyEvent$1 +instanceKlass sun/awt/AWTAccessor$KeyEventAccessor +instanceKlass java/awt/VKCollection +instanceKlass javax/swing/InputMap +instanceKlass java/awt/AWTEventMulticaster +instanceKlass java/awt/event/MouseWheelListener +instanceKlass java/awt/event/HierarchyBoundsListener +instanceKlass java/awt/event/HierarchyListener +instanceKlass java/awt/event/InputMethodListener +instanceKlass java/awt/event/TextListener +instanceKlass java/awt/event/AdjustmentListener +instanceKlass java/awt/event/ItemListener +instanceKlass java/awt/event/WindowStateListener +instanceKlass java/awt/event/WindowFocusListener +instanceKlass java/awt/event/WindowListener +instanceKlass java/awt/event/MouseMotionListener +instanceKlass java/awt/event/MouseListener +instanceKlass java/awt/event/KeyListener +instanceKlass java/awt/event/FocusListener +instanceKlass java/awt/event/ComponentListener +instanceKlass javax/swing/plaf/basic/BasicMenuBarUI$Handler +instanceKlass java/awt/event/ContainerListener +instanceKlass javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1 +instanceKlass javax/swing/BoxLayout +instanceKlass java/awt/LayoutManager2 +instanceKlass javax/swing/DefaultSingleSelectionModel +instanceKlass javax/swing/SingleSelectionModel +instanceKlass java/util/Random +instanceKlass java/lang/Math$RandomNumberGeneratorHolder +instanceKlass com/sun/java/swing/SwingUtilities3 +instanceKlass javax/swing/RepaintManager$ProcessingRunnable +instanceKlass java/awt/geom/RectangularShape +instanceKlass java/awt/Shape +instanceKlass sun/swing/SwingLazyValue$1 +instanceKlass sun/reflect/misc/Trampoline +instanceKlass sun/misc/IOUtils +instanceKlass sun/net/www/protocol/jar/JarFileFactory +instanceKlass sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController +instanceKlass sun/util/calendar/CalendarUtils +instanceKlass sun/util/calendar/CalendarDate +instanceKlass java/util/TimeZone$1 +instanceKlass java/util/zip/CRC32 +instanceKlass java/util/zip/Checksum +instanceKlass sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule +instanceKlass java/io/DataInput +instanceKlass sun/util/calendar/ZoneInfoFile$1 +instanceKlass sun/util/calendar/ZoneInfoFile +instanceKlass java/util/TimeZone +instanceKlass java/util/zip/ZipUtils +instanceKlass java/util/zip/ZipEntry +instanceKlass sun/misc/JarIndex +instanceKlass java/util/zip/ZipCoder +instanceKlass java/nio/charset/StandardCharsets +instanceKlass java/util/jar/JavaUtilJarAccessImpl +instanceKlass sun/misc/JavaUtilJarAccess +instanceKlass sun/reflect/misc/MethodUtil$1 +instanceKlass javax/swing/plaf/ComponentUI +instanceKlass sun/util/ResourceBundleEnumeration +instanceKlass javax/swing/UIManager$2 +instanceKlass sun/awt/KeyboardFocusManagerPeerImpl +instanceKlass java/awt/peer/KeyboardFocusManagerPeer +instanceKlass java/awt/FocusTraversalPolicy +instanceKlass java/awt/DefaultKeyboardFocusManager$1 +instanceKlass sun/awt/AWTAccessor$DefaultKeyboardFocusManagerAccessor +instanceKlass java/awt/AWTKeyStroke$1 +instanceKlass java/awt/AWTKeyStroke +instanceKlass java/awt/KeyboardFocusManager$1 +instanceKlass sun/awt/AWTAccessor$KeyboardFocusManagerAccessor +instanceKlass java/awt/KeyboardFocusManager +instanceKlass java/awt/KeyEventPostProcessor +instanceKlass java/awt/KeyEventDispatcher +instanceKlass sun/awt/PaintEventDispatcher +instanceKlass javax/swing/RepaintManager$DisplayChangedHandler +instanceKlass sun/swing/SwingAccessor +instanceKlass javax/swing/RepaintManager$1 +instanceKlass sun/swing/SwingAccessor$RepaintManagerAccessor +instanceKlass javax/swing/RepaintManager +instanceKlass javax/swing/plaf/metal/OceanTheme$6 +instanceKlass javax/swing/plaf/metal/OceanTheme$5 +instanceKlass javax/swing/plaf/metal/OceanTheme$4 +instanceKlass javax/swing/plaf/metal/OceanTheme$3 +instanceKlass javax/swing/plaf/metal/OceanTheme$2 +instanceKlass javax/swing/plaf/metal/OceanTheme$1 +instanceKlass java/util/EventListenerProxy +instanceKlass sun/swing/SwingUtilities2$AATextInfo +instanceKlass sun/misc/FloatingDecimal$ASCIIToBinaryBuffer +instanceKlass sun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer +instanceKlass sun/misc/FloatingDecimal$ASCIIToBinaryConverter +instanceKlass sun/misc/FloatingDecimal$BinaryToASCIIBuffer +instanceKlass sun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer +instanceKlass sun/misc/FloatingDecimal$BinaryToASCIIConverter +instanceKlass sun/misc/FloatingDecimal +instanceKlass sun/java2d/SunGraphicsEnvironment$1 +instanceKlass sun/awt/SunDisplayChanger +instanceKlass sun/java2d/SurfaceManagerFactory +instanceKlass sun/java2d/windows/WindowsFlags$1 +instanceKlass sun/java2d/windows/WindowsFlags +instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$12 +instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$11 +instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$10 +instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$9 +instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$8 +instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue +instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$7 +instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$6 +instanceKlass javax/swing/UIDefaults$LazyInputMap +instanceKlass javax/swing/plaf/basic/BasicLookAndFeel$2 +instanceKlass sun/swing/SwingUtilities2$2 +instanceKlass javax/swing/border/AbstractBorder +instanceKlass javax/swing/border/Border +instanceKlass javax/swing/UIDefaults$ActiveValue +instanceKlass sun/swing/SwingLazyValue +instanceKlass javax/swing/UIDefaults$LazyValue +instanceKlass javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate +instanceKlass javax/swing/plaf/UIResource +instanceKlass javax/swing/plaf/metal/MetalTheme +instanceKlass sun/swing/DefaultLookup +instanceKlass javax/swing/LookAndFeel +instanceKlass javax/swing/UIManager$1 +instanceKlass javax/swing/UIManager$LAFState +instanceKlass sun/swing/SwingUtilities2$LSBCacheEntry +instanceKlass sun/swing/StringUIClientPropertyKey +instanceKlass sun/swing/UIClientPropertyKey +instanceKlass java/awt/font/FontRenderContext +instanceKlass sun/swing/SwingUtilities2 +instanceKlass java/util/IdentityHashMap$IdentityHashMapIterator +instanceKlass java/awt/Toolkit$DesktopPropertyChangeSupport$1 +instanceKlass java/util/ComparableTimSort +instanceKlass java/util/Arrays$LegacyMergeSort +instanceKlass sun/awt/SunHints$Value +instanceKlass java/awt/RenderingHints$Key +instanceKlass sun/awt/SunHints +instanceKlass java/awt/RenderingHints +instanceKlass sun/awt/windows/WDesktopProperties$WinPlaySound +instanceKlass java/awt/Color +instanceKlass java/awt/Paint +instanceKlass java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock +instanceKlass java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock +instanceKlass sun/nio/ch/Interruptible +instanceKlass java/util/concurrent/locks/ReentrantReadWriteLock +instanceKlass java/util/concurrent/locks/ReadWriteLock +instanceKlass sun/awt/windows/ThemeReader +instanceKlass sun/awt/windows/WDesktopProperties +instanceKlass java/lang/Shutdown$Lock +instanceKlass java/lang/Shutdown +instanceKlass java/lang/ApplicationShutdownHooks$1 +instanceKlass java/lang/ApplicationShutdownHooks +instanceKlass sun/awt/windows/WToolkit$$Lambda$5 +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass sun/awt/windows/WToolkit$$Lambda$4 +instanceKlass sun/awt/windows/WToolkit$$Lambda$3 +instanceKlass sun/awt/windows/WToolkit$$Lambda$2 +instanceKlass sun/awt/AWTAutoShutdown +instanceKlass sun/misc/ThreadGroupUtils +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/InnerClassLambdaMetafactory$1 +instanceKlass sun/java2d/Disposer$$Lambda$1 +instanceKlass java/lang/invoke/InfoFromMemberName +instanceKlass java/lang/invoke/MethodHandleInfo +instanceKlass sun/security/util/SecurityConstants +instanceKlass java/security/AccessController$1 +instanceKlass java/lang/invoke/AbstractValidatingLambdaMetafactory +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass jdk/internal/org/objectweb/asm/FieldVisitor +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaFormBuffer +instanceKlass java/lang/invoke/LambdaFormEditor +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/MethodHandleImpl$Lazy +instanceKlass java/lang/invoke/LambdaForm$BMH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/util/SubList$1 +instanceKlass java/util/ListIterator +instanceKlass java/util/ArrayList$Itr +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/LambdaForm$MH +instanceKlass java/lang/invoke/InvokerBytecodeGenerator$CpPatch +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass java/lang/invoke/LambdaForm$DMH +instanceKlass sun/invoke/empty/Empty +instanceKlass sun/invoke/util/VerifyType +instanceKlass java/lang/invoke/InvokerBytecodeGenerator$2 +instanceKlass jdk/internal/org/objectweb/asm/AnnotationVisitor +instanceKlass jdk/internal/org/objectweb/asm/Frame +instanceKlass jdk/internal/org/objectweb/asm/Label +instanceKlass jdk/internal/org/objectweb/asm/Type +instanceKlass jdk/internal/org/objectweb/asm/MethodVisitor +instanceKlass jdk/internal/org/objectweb/asm/Item +instanceKlass jdk/internal/org/objectweb/asm/ByteVector +instanceKlass jdk/internal/org/objectweb/asm/ClassVisitor +instanceKlass java/lang/invoke/InvokerBytecodeGenerator +instanceKlass java/util/AbstractList$Itr +instanceKlass java/util/Collections$UnmodifiableCollection$1 +instanceKlass java/lang/invoke/DirectMethodHandle$Lazy +instanceKlass sun/invoke/util/BytecodeDescriptor +instanceKlass java/lang/invoke/BoundMethodHandle$Factory +instanceKlass java/lang/invoke/BoundMethodHandle$SpeciesData +instanceKlass java/lang/invoke/LambdaForm$NamedFunction +instanceKlass java/lang/invoke/LambdaForm$Name +instanceKlass sun/invoke/util/ValueConversions +instanceKlass sun/invoke/util/VerifyAccess +instanceKlass java/lang/Long$LongCache +instanceKlass java/lang/Character$CharacterCache +instanceKlass java/lang/Short$ShortCache +instanceKlass java/lang/Byte$ByteCache +instanceKlass sun/invoke/util/Wrapper$Format +instanceKlass java/lang/invoke/MethodHandles +instanceKlass java/lang/invoke/Invokers +instanceKlass java/lang/invoke/MethodTypeForm +instanceKlass java/lang/invoke/MethodType$ConcurrentWeakInternSet +instanceKlass java/lang/invoke/MethodHandles$Lookup +instanceKlass java/lang/invoke/LambdaMetafactory +instanceKlass sun/java2d/Disposer$1 +instanceKlass sun/java2d/Disposer +instanceKlass sun/awt/windows/WToolkit$ToolkitDisposer +instanceKlass sun/java2d/DisposerRecord +instanceKlass sun/misc/PerformanceLogger$TimeData +instanceKlass sun/misc/PerformanceLogger +instanceKlass sun/awt/SunToolkit$ModalityListenerList +instanceKlass sun/awt/ModalityListener +instanceKlass java/beans/PropertyChangeListener +instanceKlass java/beans/ChangeListenerMap +instanceKlass java/beans/PropertyChangeSupport +instanceKlass sun/awt/windows/WToolkit$2 +instanceKlass sun/awt/DisplayChangedListener +instanceKlass sun/awt/image/SurfaceManager +instanceKlass sun/awt/image/SurfaceManager$ImageAccessor +instanceKlass java/awt/ImageCapabilities +instanceKlass java/awt/Image +instanceKlass sun/java2d/DestSurfaceProvider +instanceKlass sun/java2d/loops/RenderCache$Entry +instanceKlass sun/java2d/loops/RenderCache +instanceKlass sun/java2d/pipe/DrawImage +instanceKlass sun/java2d/pipe/GeneralCompositePipe +instanceKlass sun/java2d/pipe/SpanShapeRenderer +instanceKlass sun/java2d/pipe/AlphaPaintPipe +instanceKlass sun/java2d/pipe/AAShapePipe +instanceKlass sun/java2d/pipe/RegionIterator +instanceKlass sun/java2d/pipe/Region +instanceKlass sun/java2d/pipe/SpanClipRenderer +instanceKlass sun/java2d/pipe/PixelToShapeConverter +instanceKlass sun/java2d/pipe/AlphaColorPipe +instanceKlass sun/java2d/pipe/CompositePipe +instanceKlass sun/java2d/pipe/GlyphListPipe +instanceKlass sun/java2d/pipe/OutlineTextRenderer +instanceKlass sun/java2d/pipe/RenderingEngine$1 +instanceKlass sun/java2d/pipe/RenderingEngine +instanceKlass sun/java2d/pipe/LoopPipe +instanceKlass sun/java2d/pipe/LoopBasedPipe +instanceKlass sun/java2d/pipe/ParallelogramPipe +instanceKlass sun/java2d/pipe/NullPipe +instanceKlass sun/java2d/pipe/DrawImagePipe +instanceKlass sun/java2d/pipe/TextPipe +instanceKlass sun/java2d/pipe/ShapeDrawPipe +instanceKlass sun/java2d/pipe/PixelFillPipe +instanceKlass sun/java2d/pipe/PixelDrawPipe +instanceKlass sun/java2d/StateTrackableDelegate$2 +instanceKlass sun/java2d/StateTrackableDelegate +instanceKlass java/awt/color/ICC_Profile$1 +instanceKlass sun/java2d/cmm/ProfileActivator +instanceKlass sun/java2d/cmm/ProfileDeferralMgr +instanceKlass java/awt/color/ICC_Profile +instanceKlass java/awt/color/ColorSpace +instanceKlass java/awt/image/ColorModel$1 +instanceKlass java/awt/image/ColorModel +instanceKlass sun/awt/image/PixelConverter +instanceKlass sun/java2d/loops/SurfaceType +instanceKlass sun/java2d/SurfaceData +instanceKlass sun/java2d/Surface +instanceKlass sun/java2d/StateTrackable +instanceKlass sun/java2d/DisposerTarget +instanceKlass java/awt/Transparency +instanceKlass sun/awt/windows/WToolkit$1 +instanceKlass java/awt/Toolkit$2 +instanceKlass sun/awt/OSInfo$1 +instanceKlass sun/awt/OSInfo$WindowsVersion +instanceKlass sun/awt/OSInfo +instanceKlass javax/swing/UIManager$LookAndFeelInfo +instanceKlass javax/swing/UIManager +instanceKlass javax/swing/SwingUtilities +instanceKlass java/util/concurrent/atomic/AtomicBoolean +instanceKlass javax/swing/event/EventListenerList +instanceKlass sun/awt/PostEventQueue +instanceKlass sun/awt/MostRecentKeyValue +instanceKlass java/awt/Queue +instanceKlass java/awt/EventQueue$2 +instanceKlass sun/awt/AWTAccessor$EventQueueAccessor +instanceKlass java/awt/EventQueue$1 +instanceKlass java/awt/EventQueue +instanceKlass sun/awt/AppContext$1 +instanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject +instanceKlass java/util/concurrent/locks/Condition +instanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer$Node +instanceKlass java/util/concurrent/locks/AbstractOwnableSynchronizer +instanceKlass sun/awt/KeyboardFocusManagerPeerProvider +instanceKlass sun/awt/InputMethodSupport +instanceKlass sun/awt/ComponentFactory +instanceKlass sun/awt/WindowClosingListener +instanceKlass sun/awt/WindowClosingSupport +instanceKlass sun/awt/AppContext$2 +instanceKlass sun/awt/AppContext$3 +instanceKlass sun/awt/AppContext$6 +instanceKlass sun/misc/JavaAWTAccess +instanceKlass sun/awt/AppContext$GetAppContextLock +instanceKlass java/util/Collections$SynchronizedMap +instanceKlass sun/awt/AppContext +instanceKlass java/awt/Graphics +instanceKlass java/awt/Component$3 +instanceKlass java/awt/ComponentOrientation +instanceKlass java/awt/FlowLayout +instanceKlass javax/swing/JComponent$1 +instanceKlass sun/security/action/GetBooleanAction +instanceKlass java/awt/Container$1 +instanceKlass sun/awt/AWTAccessor$ContainerAccessor +instanceKlass java/awt/geom/Dimension2D +instanceKlass java/awt/LightweightDispatcher +instanceKlass java/awt/event/AWTEventListener +instanceKlass java/awt/Component$DummyRequestFocusController +instanceKlass sun/awt/RequestFocusController +instanceKlass java/awt/Component$1 +instanceKlass sun/awt/AWTAccessor$ComponentAccessor +instanceKlass java/lang/Class$4 +instanceKlass java/text/AttributedCharacterIterator$Attribute +instanceKlass sun/font/AttributeValues +instanceKlass java/awt/geom/AffineTransform +instanceKlass sun/font/FontAccess +instanceKlass java/awt/Font +instanceKlass sun/awt/windows/WObjectPeer +instanceKlass java/awt/dnd/peer/DropTargetPeer +instanceKlass java/awt/peer/ComponentPeer +instanceKlass java/awt/event/InputEvent$1 +instanceKlass sun/awt/AWTAccessor$InputEventAccessor +instanceKlass java/awt/event/NativeLibLoader$1 +instanceKlass java/awt/event/NativeLibLoader +instanceKlass java/awt/AWTEvent$1 +instanceKlass sun/awt/AWTAccessor$AWTEventAccessor +instanceKlass java/awt/Insets +instanceKlass java/awt/GraphicsEnvironment$1 +instanceKlass java/awt/GraphicsEnvironment +instanceKlass java/util/Properties$LineReader +instanceKlass java/awt/Toolkit$1 +instanceKlass java/awt/Toolkit$3 +instanceKlass java/util/LinkedList$Node +instanceKlass java/util/Deque +instanceKlass java/util/Queue +instanceKlass java/util/ResourceBundle$CacheKeyReference +instanceKlass java/util/ResourceBundle$CacheKey +instanceKlass java/util/ResourceBundle$RBClassLoader$1 +instanceKlass java/net/URLClassLoader$3$1 +instanceKlass sun/misc/FileURLMapper +instanceKlass sun/misc/URLClassPath$JarLoader$1 +instanceKlass sun/misc/CompoundEnumeration +instanceKlass java/net/URLClassLoader$3 +instanceKlass sun/misc/URLClassPath$1 +instanceKlass java/lang/ClassLoader$2 +instanceKlass sun/misc/URLClassPath$2 +instanceKlass sun/misc/Launcher$BootClassPathHolder$1 +instanceKlass sun/misc/Launcher$BootClassPathHolder +instanceKlass java/util/LinkedHashMap$LinkedHashIterator +instanceKlass java/util/ServiceLoader$1 +instanceKlass java/util/ServiceLoader$LazyIterator +instanceKlass java/util/ServiceLoader +instanceKlass java/util/spi/ResourceBundleControlProvider +instanceKlass java/util/ResourceBundle +instanceKlass java/util/ResourceBundle$Control +instanceKlass java/awt/Toolkit$5 +instanceKlass sun/awt/AWTAccessor +instanceKlass java/awt/Toolkit$4 +instanceKlass sun/awt/AWTAccessor$ToolkitAccessor +instanceKlass java/awt/Toolkit +instanceKlass java/awt/Component$AWTTreeLock +instanceKlass sun/util/calendar/CalendarSystem +instanceKlass java/util/Date +instanceKlass sun/util/logging/LoggingSupport$2 +instanceKlass java/util/HashMap$HashIterator +instanceKlass sun/reflect/UnsafeFieldAccessorFactory +instanceKlass java/util/logging/LoggingProxyImpl +instanceKlass sun/util/logging/LoggingProxy +instanceKlass sun/util/logging/LoggingSupport$1 +instanceKlass sun/util/logging/LoggingSupport +instanceKlass sun/util/logging/PlatformLogger$LoggerProxy +instanceKlass sun/util/logging/PlatformLogger$1 +instanceKlass sun/util/logging/PlatformLogger +instanceKlass java/lang/Void +instanceKlass java/util/EventObject +instanceKlass dsfinal/SortingUtils +instanceKlass javax/swing/event/ChangeListener +instanceKlass javax/swing/MenuElement +instanceKlass javax/swing/SwingConstants +instanceKlass java/awt/ItemSelectable +instanceKlass java/awt/event/ActionListener +instanceKlass java/util/EventListener +instanceKlass javax/swing/TransferHandler$HasGetTransferHandler +instanceKlass javax/accessibility/Accessible +instanceKlass java/awt/Component +instanceKlass java/awt/MenuContainer +instanceKlass java/awt/image/ImageObserver +instanceKlass java/awt/LayoutManager +instanceKlass java/lang/Class$MethodArray +instanceKlass sun/launcher/LauncherHelper$FXHelper +instanceKlass dsfinal/main +instanceKlass java/io/FilePermission$1 +instanceKlass sun/net/www/MessageHeader +instanceKlass java/net/URLConnection +instanceKlass java/security/PermissionCollection +instanceKlass sun/nio/ch/DirectBuffer +instanceKlass sun/misc/PerfCounter$CoreCounters +instanceKlass sun/misc/Perf +instanceKlass sun/misc/Perf$GetPerfAction +instanceKlass sun/misc/PerfCounter +instanceKlass sun/nio/ByteBuffered +instanceKlass java/lang/Package +instanceKlass sun/misc/Resource +instanceKlass sun/nio/cs/ThreadLocalCoders$Cache +instanceKlass sun/nio/cs/ThreadLocalCoders +instanceKlass java/util/zip/ZipFile$1 +instanceKlass sun/misc/JavaUtilZipFileAccess +instanceKlass java/util/zip/ZipFile +instanceKlass java/util/zip/ZipConstants +instanceKlass sun/misc/URLClassPath$Loader +instanceKlass sun/misc/URLClassPath$3 +instanceKlass sun/net/util/URLUtil +instanceKlass java/net/URLClassLoader$1 +instanceKlass java/lang/StringCoding$StringDecoder +instanceKlass java/lang/ThreadLocal$ThreadLocalMap +instanceKlass java/lang/StringCoding +instanceKlass sun/nio/cs/SingleByte +instanceKlass sun/misc/PostVMInitHook +instanceKlass java/lang/invoke/MethodHandleStatics$1 +instanceKlass java/lang/invoke/MethodHandleStatics +instanceKlass java/lang/invoke/MemberName$Factory +instanceKlass java/lang/ClassValue$Version +instanceKlass java/lang/ClassValue$Identity +instanceKlass java/lang/ClassValue +instanceKlass java/lang/invoke/MethodHandleImpl$3 +instanceKlass java/lang/invoke/MethodHandleImpl$2 +instanceKlass java/util/function/Function +instanceKlass java/lang/invoke/MethodHandleImpl$1 +instanceKlass java/lang/invoke/MethodHandleImpl +instanceKlass java/lang/SystemClassLoaderAction +instanceKlass sun/misc/Launcher$AppClassLoader$1 +instanceKlass sun/misc/URLClassPath +instanceKlass java/security/Principal +instanceKlass java/security/ProtectionDomain$Key +instanceKlass java/security/ProtectionDomain$3 +instanceKlass sun/misc/JavaSecurityProtectionDomainAccess +instanceKlass java/security/ProtectionDomain$1 +instanceKlass sun/misc/JavaSecurityAccess +instanceKlass java/net/URLStreamHandler +instanceKlass java/net/Parts +instanceKlass java/util/BitSet +instanceKlass sun/net/www/ParseUtil +instanceKlass java/io/FileInputStream$1 +instanceKlass java/lang/CharacterData +instanceKlass sun/util/locale/LocaleUtils +instanceKlass java/util/Locale$LocaleKey +instanceKlass sun/util/locale/BaseLocale$Key +instanceKlass sun/util/locale/BaseLocale +instanceKlass java/util/concurrent/ConcurrentHashMap$CollectionView +instanceKlass java/util/concurrent/ConcurrentHashMap$CounterCell +instanceKlass java/util/concurrent/ConcurrentHashMap$Node +instanceKlass java/util/concurrent/locks/ReentrantLock +instanceKlass java/util/concurrent/locks/Lock +instanceKlass java/util/concurrent/ConcurrentMap +instanceKlass sun/util/locale/LocaleObjectCache +instanceKlass java/util/Locale +instanceKlass java/lang/reflect/Array +instanceKlass java/nio/charset/CoderResult$Cache +instanceKlass java/nio/charset/CoderResult +instanceKlass java/nio/charset/CharsetDecoder +instanceKlass sun/nio/cs/ArrayDecoder +instanceKlass java/io/Reader +instanceKlass java/lang/Readable +instanceKlass sun/misc/MetaIndex +instanceKlass sun/misc/Launcher$ExtClassLoader$1 +instanceKlass java/util/StringTokenizer +instanceKlass java/net/URLClassLoader$7 +instanceKlass sun/misc/JavaNetAccess +instanceKlass java/lang/ClassLoader$ParallelLoaders +instanceKlass sun/security/util/Debug +instanceKlass sun/misc/Launcher$Factory +instanceKlass java/net/URLStreamHandlerFactory +instanceKlass java/lang/Compiler$1 +instanceKlass java/lang/Compiler +instanceKlass java/lang/System$2 +instanceKlass sun/misc/JavaLangAccess +instanceKlass sun/io/Win32ErrorMode +instanceKlass sun/misc/OSEnvironment +instanceKlass java/lang/Integer$IntegerCache +instanceKlass sun/misc/NativeSignalHandler +instanceKlass sun/misc/Signal +instanceKlass java/lang/Terminator$1 +instanceKlass sun/misc/SignalHandler +instanceKlass java/lang/Terminator +instanceKlass java/io/ExpiringCache$Entry +instanceKlass java/lang/ClassLoader$3 +instanceKlass java/lang/ClassLoader$NativeLibrary +instanceKlass java/nio/file/Path +instanceKlass java/nio/file/Watchable +instanceKlass java/lang/Enum +instanceKlass java/io/ExpiringCache +instanceKlass java/io/FileSystem +instanceKlass java/io/DefaultFileSystem +instanceKlass java/nio/Bits$1 +instanceKlass sun/misc/JavaNioAccess +instanceKlass java/nio/ByteOrder +instanceKlass java/nio/Bits +instanceKlass java/nio/charset/CodingErrorAction +instanceKlass java/nio/charset/CharsetEncoder +instanceKlass sun/nio/cs/ArrayEncoder +instanceKlass sun/reflect/ReflectionFactory$1 +instanceKlass java/lang/Class$1 +instanceKlass sun/nio/cs/HistoricallyNamedCharset +instanceKlass java/util/Arrays +instanceKlass sun/security/action/GetPropertyAction +instanceKlass java/lang/ThreadLocal +instanceKlass java/nio/charset/spi/CharsetProvider +instanceKlass java/nio/charset/Charset +instanceKlass java/io/Writer +instanceKlass sun/reflect/misc/ReflectUtil +instanceKlass java/lang/reflect/ReflectAccess +instanceKlass sun/reflect/LangReflectAccess +instanceKlass java/lang/reflect/Modifier +instanceKlass sun/reflect/annotation/AnnotationType +instanceKlass java/lang/Class$AnnotationData +instanceKlass sun/reflect/generics/repository/AbstractRepository +instanceKlass java/lang/Class$Atomic +instanceKlass java/lang/Class$ReflectionData +instanceKlass java/lang/Class$3 +instanceKlass java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1 +instanceKlass java/security/PrivilegedExceptionAction +instanceKlass java/util/concurrent/atomic/AtomicReferenceFieldUpdater +instanceKlass java/io/OutputStream +instanceKlass java/io/Flushable +instanceKlass java/util/HashMap$Node +instanceKlass sun/reflect/Reflection +instanceKlass java/util/Collections$UnmodifiableCollection +instanceKlass sun/misc/SharedSecrets +instanceKlass java/io/FileDescriptor$1 +instanceKlass sun/misc/JavaIOFileDescriptorAccess +instanceKlass java/io/FileDescriptor +instanceKlass sun/misc/Version +instanceKlass java/lang/Runtime +instanceKlass java/util/Hashtable$Enumerator +instanceKlass java/util/Iterator +instanceKlass java/util/Enumeration +instanceKlass java/util/Objects +instanceKlass java/util/Collections$SynchronizedCollection +instanceKlass java/util/AbstractMap +instanceKlass java/util/Collections +instanceKlass java/util/Set +instanceKlass java/lang/Math +instanceKlass java/util/Hashtable$Entry +instanceKlass java/util/Map$Entry +instanceKlass sun/misc/VM +instanceKlass java/lang/ref/ReferenceQueue$Lock +instanceKlass java/lang/ref/ReferenceQueue +instanceKlass java/lang/ref/Reference$Lock +instanceKlass sun/reflect/ReflectionFactory +instanceKlass java/util/AbstractCollection +instanceKlass java/util/RandomAccess +instanceKlass java/util/List +instanceKlass java/util/Collection +instanceKlass java/lang/Iterable +instanceKlass java/security/cert/Certificate +instanceKlass sun/reflect/ReflectionFactory$GetReflectionFactoryAction +instanceKlass java/security/PrivilegedAction +instanceKlass java/security/AccessController +instanceKlass java/security/Permission +instanceKlass java/security/Guard +instanceKlass java/lang/String$CaseInsensitiveComparator +instanceKlass java/util/Comparator +instanceKlass java/io/ObjectStreamField +instanceKlass java/lang/Number +instanceKlass java/lang/Character +instanceKlass java/lang/Boolean +instanceKlass java/nio/Buffer +instanceKlass java/lang/StackTraceElement +instanceKlass java/security/CodeSource +instanceKlass sun/misc/Launcher +instanceKlass java/util/jar/Manifest +instanceKlass java/net/URL +instanceKlass java/io/File +instanceKlass java/io/InputStream +instanceKlass java/io/Closeable +instanceKlass java/lang/AutoCloseable +instanceKlass sun/misc/Unsafe +instanceKlass java/lang/AbstractStringBuilder +instanceKlass java/lang/Appendable +instanceKlass java/lang/invoke/CallSite +instanceKlass java/lang/invoke/MethodType +instanceKlass java/lang/invoke/LambdaForm +instanceKlass java/lang/invoke/MethodHandleNatives +instanceKlass java/lang/invoke/MemberName +instanceKlass java/lang/invoke/MethodHandle +instanceKlass sun/reflect/CallerSensitive +instanceKlass java/lang/annotation/Annotation +instanceKlass sun/reflect/FieldAccessor +instanceKlass sun/reflect/ConstantPool +instanceKlass sun/reflect/ConstructorAccessor +instanceKlass sun/reflect/MethodAccessor +instanceKlass sun/reflect/MagicAccessorImpl +instanceKlass java/lang/reflect/Parameter +instanceKlass java/lang/reflect/Member +instanceKlass java/lang/reflect/AccessibleObject +instanceKlass java/util/Dictionary +instanceKlass java/util/Map +instanceKlass java/lang/ThreadGroup +instanceKlass java/lang/Thread$UncaughtExceptionHandler +instanceKlass java/lang/Thread +instanceKlass java/lang/Runnable +instanceKlass java/lang/ref/Reference +instanceKlass java/security/AccessControlContext +instanceKlass java/security/ProtectionDomain +instanceKlass java/lang/SecurityManager +instanceKlass java/lang/Throwable +instanceKlass java/lang/System +instanceKlass java/lang/ClassLoader +instanceKlass java/lang/Cloneable +instanceKlass java/lang/Class +instanceKlass java/lang/reflect/Type +instanceKlass java/lang/reflect/GenericDeclaration +instanceKlass java/lang/reflect/AnnotatedElement +instanceKlass java/lang/String +instanceKlass java/lang/CharSequence +instanceKlass java/lang/Comparable +instanceKlass java/io/Serializable +ciInstanceKlass java/lang/Object 1 1 79 3 3 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 7 100 100 1 1 1 12 12 12 12 12 12 12 12 12 12 10 10 10 10 10 10 10 10 10 10 1 +ciInstanceKlass java/io/Serializable 1 0 7 1 1 1 100 100 1 +ciInstanceKlass java/lang/String 1 1 538 3 3 3 3 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 7 100 100 100 7 7 100 100 100 100 100 100 100 100 100 7 100 7 7 100 7 100 100 7 100 7 100 100 100 7 7 100 100 100 7 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 1 1 +staticfield java/lang/String serialPersistentFields [Ljava/io/ObjectStreamField; 0 [Ljava/io/ObjectStreamField; +staticfield java/lang/String CASE_INSENSITIVE_ORDER Ljava/util/Comparator; java/lang/String$CaseInsensitiveComparator +ciInstanceKlass java/lang/Class 1 1 1190 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 5 0 8 8 8 8 8 7 7 7 100 100 100 100 7 100 7 100 7 7 100 7 100 7 7 100 7 100 100 100 7 100 100 100 100 100 100 100 7 7 100 100 100 100 7 7 7 100 100 100 7 100 100 7 7 100 100 100 7 100 100 100 100 7 7 7 100 100 100 100 100 100 100 100 100 100 100 100 100 7 7 7 100 100 100 100 100 100 100 100 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1 +staticfield java/lang/Class serialPersistentFields [Ljava/io/ObjectStreamField; 0 [Ljava/io/ObjectStreamField; +ciInstanceKlass java/lang/Cloneable 1 0 7 1 1 1 100 100 1 +instanceKlass java/util/ResourceBundle$RBClassLoader +instanceKlass sun/reflect/DelegatingClassLoader +instanceKlass java/security/SecureClassLoader +ciInstanceKlass java/lang/ClassLoader 1 1 842 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 7 7 100 100 100 100 7 100 100 7 7 7 7 100 7 100 100 100 100 7 7 100 100 7 100 7 7 100 100 100 100 7 100 100 7 7 100 7 7 100 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 1 1 +staticfield java/lang/ClassLoader nocerts [Ljava/security/cert/Certificate; 0 [Ljava/security/cert/Certificate; +ciInstanceKlass java/lang/System 1 1 369 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 100 7 100 100 100 100 100 100 7 7 100 100 7 100 100 7 7 7 7 100 100 100 7 100 100 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 +staticfield java/lang/System in Ljava/io/InputStream; java/io/BufferedInputStream +staticfield java/lang/System out Ljava/io/PrintStream; java/io/PrintStream +staticfield java/lang/System err Ljava/io/PrintStream; java/io/PrintStream +instanceKlass java/lang/Exception +instanceKlass java/lang/Error +ciInstanceKlass java/lang/Throwable 1 1 327 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 100 100 7 100 100 100 100 7 7 100 100 100 100 100 100 100 100 100 7 7 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 1 1 1 1 1 +staticfield java/lang/Throwable UNASSIGNED_STACK [Ljava/lang/StackTraceElement; 0 [Ljava/lang/StackTraceElement; +staticfield java/lang/Throwable SUPPRESSED_SENTINEL Ljava/util/List; java/util/Collections$UnmodifiableRandomAccessList +staticfield java/lang/Throwable EMPTY_THROWABLE_ARRAY [Ljava/lang/Throwable; 0 [Ljava/lang/Throwable; +staticfield java/lang/Throwable $assertionsDisabled Z 1 +instanceKlass java/lang/VirtualMachineError +instanceKlass java/lang/LinkageError +instanceKlass java/lang/ThreadDeath +ciInstanceKlass java/lang/Error 1 1 30 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 1 1 12 12 12 12 12 10 10 10 10 10 1 +ciInstanceKlass java/lang/ThreadDeath 0 0 18 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 10 1 +instanceKlass java/security/PrivilegedActionException +instanceKlass java/io/IOException +instanceKlass java/lang/ReflectiveOperationException +instanceKlass java/lang/RuntimeException +ciInstanceKlass java/lang/Exception 1 1 30 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 1 1 12 12 12 12 12 10 10 10 10 10 1 +instanceKlass java/lang/UnsupportedOperationException +instanceKlass java/lang/invoke/WrongMethodTypeException +instanceKlass java/lang/IllegalStateException +instanceKlass java/lang/IllegalArgumentException +instanceKlass java/lang/ArithmeticException +instanceKlass java/lang/NullPointerException +instanceKlass java/lang/IllegalMonitorStateException +instanceKlass java/lang/ArrayStoreException +instanceKlass java/lang/ClassCastException +ciInstanceKlass java/lang/RuntimeException 1 1 30 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 1 1 12 12 12 12 12 10 10 10 10 10 1 +ciInstanceKlass java/lang/SecurityManager 0 0 375 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 +ciInstanceKlass java/security/ProtectionDomain 1 1 267 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 100 100 100 100 100 100 100 100 100 7 7 100 7 7 7 100 7 7 100 100 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 1 +staticfield java/security/ProtectionDomain debug Lsun/security/util/Debug; null +ciInstanceKlass java/security/AccessControlContext 1 1 302 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 7 100 100 100 100 100 7 100 100 7 100 100 7 100 7 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 1 +instanceKlass sun/reflect/misc/MethodUtil +instanceKlass java/net/URLClassLoader +ciInstanceKlass java/security/SecureClassLoader 1 1 130 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 100 100 7 100 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 +staticfield java/security/SecureClassLoader debug Lsun/security/util/Debug; null +instanceKlass java/lang/reflect/InvocationTargetException +instanceKlass java/lang/IllegalAccessException +instanceKlass java/lang/NoSuchFieldException +instanceKlass java/lang/InstantiationException +instanceKlass java/lang/NoSuchMethodException +instanceKlass java/lang/ClassNotFoundException +ciInstanceKlass java/lang/ReflectiveOperationException 1 1 27 1 1 1 1 1 1 1 1 1 1 1 1 5 0 7 100 1 12 12 12 12 10 10 10 10 1 +ciInstanceKlass java/lang/ClassNotFoundException 1 1 32 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 100 1 1 1 12 12 12 9 10 10 1 +instanceKlass java/lang/IncompatibleClassChangeError +instanceKlass java/lang/BootstrapMethodError +instanceKlass java/lang/NoClassDefFoundError +ciInstanceKlass java/lang/LinkageError 1 1 24 1 1 1 1 1 1 1 1 1 1 1 5 0 7 100 1 12 12 12 10 10 10 1 +ciInstanceKlass java/lang/NoClassDefFoundError 0 0 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1 +ciInstanceKlass java/lang/ClassCastException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1 +ciInstanceKlass java/lang/ArrayStoreException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1 +instanceKlass java/lang/StackOverflowError +instanceKlass java/lang/OutOfMemoryError +ciInstanceKlass java/lang/VirtualMachineError 1 1 27 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 1 12 12 12 12 10 10 10 10 1 +ciInstanceKlass java/lang/OutOfMemoryError 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1 +ciInstanceKlass java/lang/StackOverflowError 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1 +ciInstanceKlass java/lang/IllegalMonitorStateException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1 +instanceKlass java/lang/ref/PhantomReference +instanceKlass java/lang/ref/FinalReference +instanceKlass java/lang/ref/WeakReference +instanceKlass java/lang/ref/SoftReference +ciInstanceKlass java/lang/ref/Reference 1 1 117 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 7 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 1 1 1 +instanceKlass sun/font/FontDesignMetrics$KeyReference +instanceKlass sun/font/StrikeCache$SoftDisposerRef +instanceKlass java/lang/invoke/LambdaFormEditor$Transform +instanceKlass sun/util/locale/LocaleObjectCache$CacheEntry +ciInstanceKlass java/lang/ref/SoftReference 1 1 35 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 7 1 1 1 1 12 12 12 12 12 9 9 10 10 10 1 +instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$AATextListener +instanceKlass java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry +instanceKlass java/util/ResourceBundle$LoaderReference +instanceKlass java/lang/ThreadLocal$ThreadLocalMap$Entry +instanceKlass java/lang/ClassValue$Entry +instanceKlass java/util/WeakHashMap$Entry +ciInstanceKlass java/lang/ref/WeakReference 1 1 20 1 1 1 1 1 1 1 1 7 100 1 1 1 1 12 12 10 10 1 +instanceKlass java/lang/ref/Finalizer +ciInstanceKlass java/lang/ref/FinalReference 1 1 16 1 1 1 1 1 1 1 100 7 1 1 1 12 10 1 +instanceKlass sun/misc/Cleaner +ciInstanceKlass java/lang/ref/PhantomReference 1 1 19 1 1 1 1 1 1 1 1 1 1 100 7 1 1 1 12 10 1 +ciInstanceKlass sun/misc/Cleaner 1 1 74 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 7 7 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 11 1 +staticfield sun/misc/Cleaner dummyQueue Ljava/lang/ref/ReferenceQueue; java/lang/ref/ReferenceQueue +ciInstanceKlass java/lang/ref/Finalizer 1 1 148 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 7 7 100 7 7 100 100 100 7 7 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1 +staticfield java/lang/ref/Finalizer lock Ljava/lang/Object; java/lang/Object +instanceKlass java/awt/EventDispatchThread +instanceKlass java/lang/ref/Finalizer$FinalizerThread +instanceKlass java/lang/ref/Reference$ReferenceHandler +ciInstanceKlass java/lang/Thread 1 1 546 3 3 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 100 100 100 100 100 100 100 100 100 100 100 100 7 7 7 100 7 7 7 7 100 100 100 100 100 100 7 100 100 100 100 100 100 100 7 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 1 1 1 1 1 +staticfield java/lang/Thread EMPTY_STACK_TRACE [Ljava/lang/StackTraceElement; 0 [Ljava/lang/StackTraceElement; +staticfield java/lang/Thread SUBCLASS_IMPLEMENTATION_PERMISSION Ljava/lang/RuntimePermission; java/lang/RuntimePermission +ciInstanceKlass java/lang/ThreadGroup 1 1 268 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 100 100 100 7 100 100 7 7 100 100 7 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1 +instanceKlass java/util/Hashtable +ciInstanceKlass java/util/Dictionary 1 1 31 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 1 1 1 1 1 1 12 10 1 +instanceKlass javax/swing/JSlider$1SmartHashtable +instanceKlass javax/swing/UIDefaults +instanceKlass java/util/Properties +ciInstanceKlass java/util/Hashtable 1 1 397 3 3 4 4 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 5 0 100 100 100 100 100 100 100 100 100 100 7 100 100 7 100 7 100 100 100 7 100 7 7 100 7 7 7 100 100 7 7 7 100 7 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 +ciInstanceKlass java/util/Properties 1 1 263 3 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 100 100 100 100 100 100 7 100 100 100 100 100 7 100 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 1 1 +staticfield java/util/Properties hexDigit [C 16 +instanceKlass java/lang/reflect/Executable +instanceKlass java/lang/reflect/Field +ciInstanceKlass java/lang/reflect/AccessibleObject 1 1 144 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 100 100 7 7 100 7 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1 +staticfield java/lang/reflect/AccessibleObject ACCESS_PERMISSION Ljava/security/Permission; java/lang/reflect/ReflectPermission +staticfield java/lang/reflect/AccessibleObject reflectionFactory Lsun/reflect/ReflectionFactory; sun/reflect/ReflectionFactory +ciInstanceKlass java/lang/reflect/Field 1 1 362 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 7 7 100 100 100 100 100 100 100 7 7 7 100 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 +ciInstanceKlass java/lang/reflect/Parameter 0 0 210 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 1 +instanceKlass java/lang/reflect/Constructor +instanceKlass java/lang/reflect/Method +ciInstanceKlass java/lang/reflect/Executable 1 1 378 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 100 100 100 100 100 100 100 7 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 1 1 +ciInstanceKlass java/lang/reflect/Method 1 1 346 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 100 100 100 100 100 100 7 100 7 100 100 100 100 100 100 7 7 7 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 1 +ciInstanceKlass java/lang/reflect/Constructor 1 1 330 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 7 100 100 100 100 100 100 7 7 100 100 100 100 100 7 7 7 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 1 +instanceKlass sun/reflect/FieldAccessorImpl +instanceKlass sun/reflect/ConstructorAccessorImpl +instanceKlass sun/reflect/MethodAccessorImpl +ciInstanceKlass sun/reflect/MagicAccessorImpl 1 1 13 1 1 1 1 1 1 1 7 100 12 10 1 +instanceKlass sun/reflect/GeneratedMethodAccessor1 +instanceKlass sun/reflect/DelegatingMethodAccessorImpl +instanceKlass sun/reflect/NativeMethodAccessorImpl +ciInstanceKlass sun/reflect/MethodAccessorImpl 1 1 22 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 100 100 12 10 1 +instanceKlass sun/reflect/BootstrapConstructorAccessorImpl +instanceKlass sun/reflect/GeneratedConstructorAccessor1 +instanceKlass sun/reflect/DelegatingConstructorAccessorImpl +instanceKlass sun/reflect/NativeConstructorAccessorImpl +ciInstanceKlass sun/reflect/ConstructorAccessorImpl 1 1 24 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 7 12 10 1 +ciInstanceKlass sun/reflect/DelegatingClassLoader 1 1 13 1 1 1 1 1 1 1 7 100 1 12 10 +ciInstanceKlass sun/reflect/ConstantPool 0 0 106 8 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 +instanceKlass sun/reflect/UnsafeFieldAccessorImpl +ciInstanceKlass sun/reflect/FieldAccessorImpl 1 1 56 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 10 1 +instanceKlass sun/reflect/UnsafeBooleanFieldAccessorImpl +instanceKlass sun/reflect/UnsafeStaticFieldAccessorImpl +ciInstanceKlass sun/reflect/UnsafeFieldAccessorImpl 1 1 229 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 100 100 100 100 100 100 7 100 100 100 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 +staticfield sun/reflect/UnsafeFieldAccessorImpl unsafe Lsun/misc/Unsafe; sun/misc/Unsafe +instanceKlass sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl +ciInstanceKlass sun/reflect/UnsafeStaticFieldAccessorImpl 1 1 38 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 7 1 1 1 1 12 12 12 12 12 9 9 10 10 10 1 +ciInstanceKlass sun/reflect/CallerSensitive 0 0 17 1 1 1 1 1 1 1 1 100 100 100 1 1 1 1 1 +instanceKlass java/lang/invoke/DelegatingMethodHandle +instanceKlass java/lang/invoke/BoundMethodHandle +instanceKlass java/lang/invoke/DirectMethodHandle +ciInstanceKlass java/lang/invoke/MethodHandle 1 1 424 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 100 100 7 100 100 100 7 100 100 7 7 7 100 7 7 7 7 100 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1 1 +staticfield java/lang/invoke/MethodHandle FORM_OFFSET J 16 +staticfield java/lang/invoke/MethodHandle $assertionsDisabled Z 1 +instanceKlass java/lang/invoke/DirectMethodHandle$Special +instanceKlass java/lang/invoke/DirectMethodHandle$Accessor +ciInstanceKlass java/lang/invoke/DirectMethodHandle 1 1 694 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7 7 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 7 7 100 7 100 7 100 100 100 7 100 7 100 100 7 7 100 7 7 100 7 7 100 7 7 7 100 100 100 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1 1 1 1 1 1 1 +staticfield java/lang/invoke/DirectMethodHandle IMPL_NAMES Ljava/lang/invoke/MemberName$Factory; java/lang/invoke/MemberName$Factory +staticfield java/lang/invoke/DirectMethodHandle ACCESSOR_FORMS [Ljava/lang/invoke/LambdaForm; 132 [Ljava/lang/invoke/LambdaForm; +staticfield java/lang/invoke/DirectMethodHandle $assertionsDisabled Z 1 +ciInstanceKlass java/lang/invoke/MemberName 1 1 644 3 3 3 3 3 3 3 3 3 3 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 7 7 100 100 100 7 7 100 100 100 100 100 100 100 100 100 7 100 7 7 7 7 7 100 7 7 100 100 100 100 7 100 100 100 7 7 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1 1 +staticfield java/lang/invoke/MemberName $assertionsDisabled Z 1 +ciInstanceKlass java/lang/invoke/MethodHandleNatives 1 1 425 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 100 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 7 100 100 100 100 100 100 100 100 100 100 100 100 7 100 7 100 100 100 7 7 7 7 7 7 100 7 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1 +staticfield java/lang/invoke/MethodHandleNatives COUNT_GWT Z 1 +staticfield java/lang/invoke/MethodHandleNatives $assertionsDisabled Z 1 +ciInstanceKlass java/lang/invoke/LambdaForm 1 1 962 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 8 100 100 100 100 7 7 100 100 100 7 100 100 100 100 100 100 100 100 7 7 7 100 7 7 100 100 100 7 100 7 100 100 7 7 7 7 7 100 100 7 7 7 7 100 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 1 1 1 1 1 1 +staticfield java/lang/invoke/LambdaForm COMPILE_THRESHOLD I 0 +staticfield java/lang/invoke/LambdaForm INTERNED_ARGUMENTS [[Ljava/lang/invoke/LambdaForm$Name; 5 [[Ljava/lang/invoke/LambdaForm$Name; +staticfield java/lang/invoke/LambdaForm IMPL_NAMES Ljava/lang/invoke/MemberName$Factory; java/lang/invoke/MemberName$Factory +staticfield java/lang/invoke/LambdaForm LF_identityForm [Ljava/lang/invoke/LambdaForm; 6 [Ljava/lang/invoke/LambdaForm; +staticfield java/lang/invoke/LambdaForm LF_zeroForm [Ljava/lang/invoke/LambdaForm; 6 [Ljava/lang/invoke/LambdaForm; +staticfield java/lang/invoke/LambdaForm NF_identity [Ljava/lang/invoke/LambdaForm$NamedFunction; 6 [Ljava/lang/invoke/LambdaForm$NamedFunction; +staticfield java/lang/invoke/LambdaForm NF_zero [Ljava/lang/invoke/LambdaForm$NamedFunction; 6 [Ljava/lang/invoke/LambdaForm$NamedFunction; +staticfield java/lang/invoke/LambdaForm DEBUG_NAME_COUNTERS Ljava/util/HashMap; null +staticfield java/lang/invoke/LambdaForm TRACE_INTERPRETER Z 0 +staticfield java/lang/invoke/LambdaForm $assertionsDisabled Z 1 +ciInstanceKlass java/lang/invoke/MethodType 1 1 591 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 5 0 7 100 100 100 7 100 100 7 100 7 100 100 100 100 100 7 7 7 7 100 7 7 7 7 7 7 7 7 7 7 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 1 1 +staticfield java/lang/invoke/MethodType internTable Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet; java/lang/invoke/MethodType$ConcurrentWeakInternSet +staticfield java/lang/invoke/MethodType NO_PTYPES [Ljava/lang/Class; 0 [Ljava/lang/Class; +staticfield java/lang/invoke/MethodType objectOnlyTypes [Ljava/lang/invoke/MethodType; 20 [Ljava/lang/invoke/MethodType; +staticfield java/lang/invoke/MethodType serialPersistentFields [Ljava/io/ObjectStreamField; 0 [Ljava/io/ObjectStreamField; +staticfield java/lang/invoke/MethodType rtypeOffset J 12 +staticfield java/lang/invoke/MethodType ptypesOffset J 16 +staticfield java/lang/invoke/MethodType $assertionsDisabled Z 1 +ciInstanceKlass java/lang/BootstrapMethodError 0 0 38 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 1 1 12 12 12 12 12 10 10 10 10 10 1 +instanceKlass java/lang/invoke/VolatileCallSite +instanceKlass java/lang/invoke/MutableCallSite +instanceKlass java/lang/invoke/ConstantCallSite +ciInstanceKlass java/lang/invoke/CallSite 1 1 311 8 8 8 8 8 8 8 8 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 100 100 7 100 100 100 100 100 100 7 100 7 100 7 7 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 +staticfield java/lang/invoke/CallSite GET_TARGET Ljava/lang/invoke/MethodHandle; java/lang/invoke/DirectMethodHandle +staticfield java/lang/invoke/CallSite THROW_UCS Ljava/lang/invoke/MethodHandle; java/lang/invoke/MethodHandleImpl$AsVarargsCollector +staticfield java/lang/invoke/CallSite TARGET_OFFSET J 12 +ciInstanceKlass java/lang/invoke/ConstantCallSite 1 1 42 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 7 1 1 12 12 12 12 12 12 9 9 10 10 10 10 10 1 +ciInstanceKlass java/lang/invoke/MutableCallSite 0 0 57 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 1 +ciInstanceKlass java/lang/invoke/VolatileCallSite 0 0 33 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 12 12 12 12 12 12 10 10 10 10 10 10 1 +instanceKlass java/lang/StringBuilder +instanceKlass java/lang/StringBuffer +ciInstanceKlass java/lang/AbstractStringBuilder 1 1 312 3 3 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 100 7 100 100 100 7 100 7 100 7 100 100 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 +ciInstanceKlass java/lang/StringBuffer 1 1 372 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 7 100 7 7 100 100 7 7 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1 1 +staticfield java/lang/StringBuffer serialPersistentFields [Ljava/io/ObjectStreamField; 3 [Ljava/io/ObjectStreamField; +ciInstanceKlass java/lang/StringBuilder 1 1 326 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 7 100 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 +ciInstanceKlass sun/misc/Unsafe 1 1 389 8 8 7 7 7 7 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 100 7 100 100 7 100 7 100 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 +staticfield sun/misc/Unsafe theUnsafe Lsun/misc/Unsafe; sun/misc/Unsafe +staticfield sun/misc/Unsafe ARRAY_BOOLEAN_BASE_OFFSET I 16 +staticfield sun/misc/Unsafe ARRAY_BYTE_BASE_OFFSET I 16 +staticfield sun/misc/Unsafe ARRAY_SHORT_BASE_OFFSET I 16 +staticfield sun/misc/Unsafe ARRAY_CHAR_BASE_OFFSET I 16 +staticfield sun/misc/Unsafe ARRAY_INT_BASE_OFFSET I 16 +staticfield sun/misc/Unsafe ARRAY_LONG_BASE_OFFSET I 16 +staticfield sun/misc/Unsafe ARRAY_FLOAT_BASE_OFFSET I 16 +staticfield sun/misc/Unsafe ARRAY_DOUBLE_BASE_OFFSET I 16 +staticfield sun/misc/Unsafe ARRAY_OBJECT_BASE_OFFSET I 16 +staticfield sun/misc/Unsafe ARRAY_BOOLEAN_INDEX_SCALE I 1 +staticfield sun/misc/Unsafe ARRAY_BYTE_INDEX_SCALE I 1 +staticfield sun/misc/Unsafe ARRAY_SHORT_INDEX_SCALE I 2 +staticfield sun/misc/Unsafe ARRAY_CHAR_INDEX_SCALE I 2 +staticfield sun/misc/Unsafe ARRAY_INT_INDEX_SCALE I 4 +staticfield sun/misc/Unsafe ARRAY_LONG_INDEX_SCALE I 8 +staticfield sun/misc/Unsafe ARRAY_FLOAT_INDEX_SCALE I 4 +staticfield sun/misc/Unsafe ARRAY_DOUBLE_INDEX_SCALE I 8 +staticfield sun/misc/Unsafe ARRAY_OBJECT_INDEX_SCALE I 4 +staticfield sun/misc/Unsafe ADDRESS_SIZE I 8 +instanceKlass java/util/zip/ZipFile$ZipFileInputStream +instanceKlass sun/java2d/cmm/ProfileDeferralInfo +instanceKlass java/io/FilterInputStream +instanceKlass java/io/FileInputStream +instanceKlass java/io/ByteArrayInputStream +ciInstanceKlass java/io/InputStream 1 1 61 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 5 0 100 100 100 100 100 100 100 7 12 12 12 12 12 10 10 10 10 10 10 10 1 +ciInstanceKlass java/io/ByteArrayInputStream 1 1 62 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 7 100 100 100 100 1 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 1 +ciInstanceKlass java/io/File 1 1 578 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 7 100 7 100 100 7 7 100 100 100 100 100 100 7 100 100 100 100 100 7 100 100 100 100 7 7 7 100 100 100 100 100 100 100 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 1 1 1 1 +staticfield java/io/File fs Ljava/io/FileSystem; java/io/WinNTFileSystem +staticfield java/io/File separatorChar C 92 +staticfield java/io/File separator Ljava/lang/String; "\" +staticfield java/io/File pathSeparatorChar C 59 +staticfield java/io/File pathSeparator Ljava/lang/String; ";" +staticfield java/io/File PATH_OFFSET J 16 +staticfield java/io/File PREFIX_LENGTH_OFFSET J 12 +staticfield java/io/File UNSAFE Lsun/misc/Unsafe; sun/misc/Unsafe +staticfield java/io/File $assertionsDisabled Z 1 +instanceKlass sun/misc/Launcher$ExtClassLoader +instanceKlass sun/misc/Launcher$AppClassLoader +ciInstanceKlass java/net/URLClassLoader 1 1 522 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 7 100 100 100 7 7 7 100 100 7 100 100 100 7 7 7 100 100 100 7 7 7 100 7 100 100 100 7 7 100 100 100 7 7 7 7 100 7 100 100 100 7 100 100 100 100 7 7 7 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 +ciInstanceKlass java/net/URL 1 1 457 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 7 7 100 100 100 100 100 7 100 7 7 7 100 100 100 100 7 100 100 100 100 7 100 7 100 7 7 7 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 +ciInstanceKlass java/util/jar/Manifest 1 1 230 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 1 1 +ciInstanceKlass sun/misc/Launcher 1 1 218 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 100 100 100 100 100 100 100 100 7 100 7 100 7 7 100 7 7 100 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1 1 +ciInstanceKlass sun/misc/Launcher$AppClassLoader 1 1 201 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 7 7 100 7 100 7 7 100 100 7 100 7 100 7 100 7 7 7 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 +staticfield sun/misc/Launcher$AppClassLoader $assertionsDisabled Z 1 +ciInstanceKlass sun/misc/Launcher$ExtClassLoader 1 1 209 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 7 100 7 7 7 7 7 100 7 100 100 100 7 7 7 7 7 7 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 +ciInstanceKlass java/security/CodeSource 1 1 322 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 100 100 100 100 7 100 100 100 100 7 100 7 100 100 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 1 +ciInstanceKlass java/lang/StackTraceElement 0 0 98 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 100 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 1 +instanceKlass java/nio/ShortBuffer +instanceKlass java/nio/IntBuffer +instanceKlass java/nio/LongBuffer +instanceKlass java/nio/CharBuffer +instanceKlass java/nio/ByteBuffer +ciInstanceKlass java/nio/Buffer 1 1 103 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 100 100 7 100 7 100 100 100 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 1 +ciInstanceKlass java/lang/Boolean 1 1 110 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 7 100 100 100 7 100 7 7 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 1 +staticfield java/lang/Boolean TRUE Ljava/lang/Boolean; java/lang/Boolean +staticfield java/lang/Boolean FALSE Ljava/lang/Boolean; java/lang/Boolean +staticfield java/lang/Boolean TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass java/lang/Character 1 1 459 3 3 3 3 3 3 3 3 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 5 0 5 0 100 100 100 7 100 100 100 7 100 7 100 100 100 100 7 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 1 1 1 1 +staticfield java/lang/Character TYPE Ljava/lang/Class; java/lang/Class +staticfield java/lang/Character $assertionsDisabled Z 1 +instanceKlass java/util/concurrent/atomic/AtomicLong +instanceKlass java/util/concurrent/atomic/AtomicInteger +instanceKlass java/lang/Long +instanceKlass java/lang/Integer +instanceKlass java/lang/Short +instanceKlass java/lang/Byte +instanceKlass java/lang/Double +instanceKlass java/lang/Float +ciInstanceKlass java/lang/Number 1 1 34 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 7 12 12 10 10 1 +ciInstanceKlass java/lang/Float 1 1 169 3 3 3 4 4 4 4 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 4 4 5 0 7 100 100 7 100 7 100 100 7 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 +staticfield java/lang/Float TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass java/lang/Double 1 1 223 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 5 0 5 0 5 0 5 0 5 0 6 0 6 0 6 0 6 0 6 0 6 0 6 0 7 100 7 100 100 7 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 +staticfield java/lang/Double TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass java/lang/Byte 1 1 153 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 5 0 5 0 7 7 7 100 100 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 +staticfield java/lang/Byte TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass java/lang/Short 1 1 159 3 3 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 5 0 5 0 7 100 100 7 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 +staticfield java/lang/Short TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass java/lang/Integer 1 1 309 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 5 0 5 0 5 0 100 7 7 100 100 7 7 100 7 100 7 100 100 100 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 +staticfield java/lang/Integer TYPE Ljava/lang/Class; java/lang/Class +staticfield java/lang/Integer digits [C 36 +staticfield java/lang/Integer DigitTens [C 100 +staticfield java/lang/Integer DigitOnes [C 100 +staticfield java/lang/Integer sizeTable [I 10 +ciInstanceKlass java/lang/Long 1 1 356 3 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 100 100 7 100 100 100 7 7 100 100 7 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 +staticfield java/lang/Long TYPE Ljava/lang/Class; java/lang/Class +ciInstanceKlass java/lang/NullPointerException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1 +ciInstanceKlass java/lang/ArithmeticException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1 +ciInstanceKlass sun/java2d/loops/CompositeType 1 1 214 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 100 7 100 7 7 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 1 +staticfield sun/java2d/loops/CompositeType compositeUIDMap Ljava/util/HashMap; java/util/HashMap +staticfield sun/java2d/loops/CompositeType Any Lsun/java2d/loops/CompositeType; sun/java2d/loops/CompositeType +staticfield sun/java2d/loops/CompositeType General Lsun/java2d/loops/CompositeType; sun/java2d/loops/CompositeType +staticfield sun/java2d/loops/CompositeType AnyAlpha Lsun/java2d/loops/CompositeType; sun/java2d/loops/CompositeType +staticfield sun/java2d/loops/CompositeType Xor Lsun/java2d/loops/CompositeType; sun/java2d/loops/CompositeType +staticfield sun/java2d/loops/CompositeType Clear Lsun/java2d/loops/CompositeType; sun/java2d/loops/CompositeType +staticfield sun/java2d/loops/CompositeType Src Lsun/java2d/loops/CompositeType; sun/java2d/loops/CompositeType +staticfield sun/java2d/loops/CompositeType Dst Lsun/java2d/loops/CompositeType; sun/java2d/loops/CompositeType +staticfield sun/java2d/loops/CompositeType SrcOver Lsun/java2d/loops/CompositeType; sun/java2d/loops/CompositeType +staticfield sun/java2d/loops/CompositeType DstOver Lsun/java2d/loops/CompositeType; sun/java2d/loops/CompositeType +staticfield sun/java2d/loops/CompositeType SrcIn Lsun/java2d/loops/CompositeType; sun/java2d/loops/CompositeType +staticfield sun/java2d/loops/CompositeType DstIn Lsun/java2d/loops/CompositeType; sun/java2d/loops/CompositeType +staticfield sun/java2d/loops/CompositeType SrcOut Lsun/java2d/loops/CompositeType; sun/java2d/loops/CompositeType +staticfield sun/java2d/loops/CompositeType DstOut Lsun/java2d/loops/CompositeType; sun/java2d/loops/CompositeType +staticfield sun/java2d/loops/CompositeType SrcAtop Lsun/java2d/loops/CompositeType; sun/java2d/loops/CompositeType +staticfield sun/java2d/loops/CompositeType DstAtop Lsun/java2d/loops/CompositeType; sun/java2d/loops/CompositeType +staticfield sun/java2d/loops/CompositeType AlphaXor Lsun/java2d/loops/CompositeType; sun/java2d/loops/CompositeType +staticfield sun/java2d/loops/CompositeType SrcNoEa Lsun/java2d/loops/CompositeType; sun/java2d/loops/CompositeType +staticfield sun/java2d/loops/CompositeType SrcOverNoEa Lsun/java2d/loops/CompositeType; sun/java2d/loops/CompositeType +staticfield sun/java2d/loops/CompositeType OpaqueSrcOverNoEa Lsun/java2d/loops/CompositeType; sun/java2d/loops/CompositeType +compile sun/java2d/loops/CompositeType equals (Ljava/lang/Object;)Z -1 3 diff --git a/DSFinal/src/dsfinal/CocktailShakerSort.java b/DSFinal/src/dsfinal/CocktailShakerSort.java index bd622cf..296c39f 100644 --- a/DSFinal/src/dsfinal/CocktailShakerSort.java +++ b/DSFinal/src/dsfinal/CocktailShakerSort.java @@ -98,18 +98,7 @@ public void stepSort() } iNum++; } - - /* - if(iNum >= blockArray.length -2) - { - if(swappedBol == false) - { - running = false; - } - }*/ - - - + if(iNum >= blockArray.length - 2-loops) { if(iNumTwo <= blockArray.length - 2) diff --git a/DSFinal/src/dsfinal/CombSort.java b/DSFinal/src/dsfinal/CombSort.java index 8be91ba..b70e607 100644 --- a/DSFinal/src/dsfinal/CombSort.java +++ b/DSFinal/src/dsfinal/CombSort.java @@ -19,6 +19,7 @@ public class CombSort extends SortingUtils final double shrink = 1.3; protected boolean finishedLoop; protected int qNum; + protected int numZero; public CombSort(int[] array, boolean isGraphic) { @@ -27,9 +28,11 @@ public CombSort(int[] array, boolean isGraphic) if(isGraphic) { gapNum = blockArray.length; + gapNum = (int)(gapNum/shrink); sortedBol = false; iNum = 0; qNum = 0; + numZero = 0; finishedLoop = false; } } @@ -69,21 +72,18 @@ public void run() } public void stepSort() - { - if(sortedBol == false && iNum <= blockArray.length) + { + if(gapNum > -1) { for(int i = 0; i < blockArray.length; i++) { blockArray[i].color = Color.green; } - - if(iNum + gapNum < blockArray.length) { blockArray[iNum].color = Color.RED; blockArray[iNum+gapNum].color = Color.RED; - System.out.println("I " + iNum); if(blockArray[iNum].value > blockArray[iNum+gapNum].value) { @@ -97,16 +97,33 @@ public void stepSort() else { iNum = 0; - finishedLoop = true; + gapNum = (int)(gapNum/shrink); + + if(gapNum == 0) + { + gapNum = 1; + numZero++; + } + if(numZero > 1) + { + gapNum = -1; + sortedBol = true; + } + } + + + } else { if(qNum < blockArray.length) { blockArray[qNum].color = Color.ORANGE; + //blockArray[qNum].isSorted = true; qNum++; + } } } diff --git a/DSFinal/src/dsfinal/main.java b/DSFinal/src/dsfinal/main.java index d61f14b..bf9e29d 100644 --- a/DSFinal/src/dsfinal/main.java +++ b/DSFinal/src/dsfinal/main.java @@ -43,16 +43,9 @@ public class main { private static JMenu sortsMenu; private static JMenu nonGraphical; private static JMenu graphical; - //private static JCheckBox[] sortListNGSimple; - //private static JCheckBox[] sortListNGComplex; - private static ButtonGroup sortListG; private static JCheckBox[] sortListNG; private static JSlider delaySlider; - private static String sortListNGSimpleString; - private static String sortListNGComplexString; - private static String sortListGString; - private static Timer timer; private static int delay = 500; final static int DELAY_MIN = 0; @@ -209,7 +202,7 @@ public void stateChanged(ChangeEvent e) else if(!timer.isRunning()) startTimer(); - timer.setDelay(newDelay); + timer.setDelay(newDelay); } } }); @@ -291,11 +284,11 @@ else if(sortSTR.equals(sortOptionsG[2])) { sortPanel.sort = new CombSort(toBeSorted,true); } - else if(sortSTR.equals(sortOptionsG[3])) + else if(sortSTR.equals(sortOptionsG[4])) { sortPanel.sort = new ShellSort(toBeSorted,true); } - else if(sortSTR.equals(sortOptionsG[4])) + else if(sortSTR.equals(sortOptionsG[3])) { sortPanel.sort = new SelectionSort(toBeSorted,true); } @@ -307,8 +300,29 @@ public static void setUpNG() { stopTimer(); sortPanel.graphical = false; - //JCheckBox source = (JCheckBox)(e.getSource()); - int[] toBeSorted = generateArray(0, 10000); + + int typeofSort = 0; + + String response = JOptionPane.showInputDialog("Please enter the type of array you want to sort\n1.)Random\n2.)Backwards\n3.)Almost Sorted\n"); + while(true) + { + try + { + typeofSort = Integer.valueOf(response); + if(typeofSort == 1 || typeofSort == 2 ||typeofSort == 3) + { + break; + } + } + catch(Exception e) + { + response = JOptionPane.showInputDialog("Please enter the type of array you want to sort\n1.)Random\n2.)Backwards\n3.)Almost Sorted\n"); + + } + } + + + int[] toBeSorted = generateArray(typeofSort, 10000); sorts.clear(); sorts.ensureCapacity(sortListNG.length); for(int i = 1; i < sortListNG.length; i++) @@ -399,7 +413,6 @@ public static int[] generateArray(int type, int max) { case 1: //random - //System.out.println("\nGenerating random array of " + max + " integers"); for(int i = 0; i < max; i++) { tBSort[i] = (int)(Math.random() * max); @@ -407,7 +420,6 @@ public static int[] generateArray(int type, int max) break; case 2: //backwards - //System.out.println("\nGenerating backwards array of " + max + " integers"); for(int i = 0; i < max; i++) { tBSort[max-1-i] = i; @@ -415,7 +427,6 @@ public static int[] generateArray(int type, int max) break; case 3: //almost sorted - //System.out.println("\nGenerating almost sorted array of " + max + " integers"); for(int i = 0; i < max; i++) { if(i < (int)(max * .75)) From 4c7bd27f1ddd00ffdcd070cd59c0b05e827d2eac Mon Sep 17 00:00:00 2001 From: Anthony Montalbano Date: Tue, 18 Apr 2017 20:11:32 -0500 Subject: [PATCH 26/26] Added a selection menu to the gui and some buttons --- DSFinal/src/dsfinal/FinalProjectNB.java | 280 ------------------------ DSFinal/src/dsfinal/main.java | 22 +- 2 files changed, 13 insertions(+), 289 deletions(-) delete mode 100644 DSFinal/src/dsfinal/FinalProjectNB.java diff --git a/DSFinal/src/dsfinal/FinalProjectNB.java b/DSFinal/src/dsfinal/FinalProjectNB.java deleted file mode 100644 index 8f13bf0..0000000 --- a/DSFinal/src/dsfinal/FinalProjectNB.java +++ /dev/null @@ -1,280 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - -http://winterbe.com/posts/2015/04/07/java8-concurrency-tutorial-thread-executor-examples/ - -Do To -counting sort -bucket sort -odd even sort -smooth sort -intro sort - -done -shell sort -comb sort -radix -cocktail -gnome - - */ -package dsfinal; -import java.util.ArrayList; -import java.util.Scanner; -import java.util.StringTokenizer; - -/** - * - * @author Anthony - */ -public class FinalProjectNB { - - final static String[] sortOptions = {"","Bubble","Cocktail Shaker","Comb", "Gnome Bubble", "Gnome Insertion","Heap","Insertion","Merge","Odd-Even","Quick","Radix","Selection","Shell"}; - - public static void main(String[] args) throws InterruptedException { - - Scanner sc = new Scanner(System.in); - - ArrayList sorts = new ArrayList<>(); - - System.out.println("Please enter the number of integers you want to sort"); - System.out.println("Large number (> 100,000) take a long time. Be aware"); - int MAXNUM = sc.nextInt(); - - System.out.println("What type of array would you like to sort"); - System.out.println("1.)Random\n2.)Backwards\n3.)Almost Sorted\n4.)Few Unique\n"); - int arrayType = sc.nextInt(); - - int[] toBeSorted = generateArray(arrayType,MAXNUM); - - printMe(toBeSorted); //used for checking if array is generated correctly - - System.out.println("\nWhich sorts would you like to compare times for?"); - System.out.println(createListString(sortOptions)); - System.out.println("If your number of ints to be sorted if very large (> 100,000)\n" - +"selecting more than 4 sorts will cause massive slow downs\n" - +"and might not provide accurate times, but will still work.\nBe aware"); - System.out.println("Enter each number with a comma between the numbers"); - - sc.nextLine(); //reset scanner - - StringTokenizer st = new StringTokenizer(sc.nextLine(),","); - - while(st.hasMoreElements()) - { - try - { - int num = Integer.valueOf(st.nextToken()); - getSort(num,sorts,toBeSorted); - } - catch(Exception e){} - } - - System.out.println("\nQuickest Sorts\n"); - - long startTime = System.nanoTime(); - - sorts.forEach((t) -> { - t.start(); - }); - - while(!sorts.isEmpty()) - { - for(int i = 0; i < sorts.size();i++) - { - if(!sorts.get(i).isAlive()) - { - sorts.remove(i); - } - } - } - - System.out.println("\nDone sorting all"); - long stopTime = System.nanoTime(); - - System.out.println("Elapsed time in seconds : " + (stopTime - startTime) / Math.pow(10,9)); - } - - public static String printArray(int [] array) - { - String str = ""; - for(int temp : array) - { - str += temp + " , "; - } - return str; - } - - public static void getSort(int toFind, ArrayList arrayList, int[] toBeSorted) - { - if(indexOf(sortOptions,"Selection") == toFind) - { - Runnable selectionRunnable = new SelectionSort(toBeSorted,false); - arrayList.add(new Thread(selectionRunnable, "Selection Sort")); - } - else if(indexOf(sortOptions, "Bubble") == toFind) - { - Runnable bubbleRunnable = new BubbleSort(toBeSorted); - arrayList.add(new Thread(bubbleRunnable, "Bubble Sort")); - } - else if(indexOf(sortOptions, "Insertion") == toFind) - { - Runnable insertionRunnable = new InsertionSort(toBeSorted); - arrayList.add(new Thread(insertionRunnable, "Insertion Sort")); - } - else if(indexOf(sortOptions, "Shell") == toFind) - { - Runnable shellRunnable = new ShellSort(toBeSorted,false); - arrayList.add(new Thread(shellRunnable, "Shell Sort")); - } - else if(indexOf(sortOptions, "Merge") == toFind) - { - Runnable mergeRunnable = new MergeSort(toBeSorted); - arrayList.add(new Thread(mergeRunnable, "Merge Sort")); - } - else if(indexOf(sortOptions, "Quick") == toFind) - { - Runnable quickRunnable = new QuickSort(toBeSorted); - arrayList.add(new Thread(quickRunnable, "Quick Sort")); - } - else if(indexOf(sortOptions, "Heap") == toFind) - { - Runnable heapRunnable = new HeapSort(toBeSorted); - arrayList.add(new Thread(heapRunnable, "Heap Sort")); - } - else if(indexOf(sortOptions, "Comb") == toFind) - { - Runnable combRunnable = new CombSort(toBeSorted); - arrayList.add(new Thread(combRunnable, "Comb Sort")); - } - else if(indexOf(sortOptions, "Radix") == toFind) - { - Runnable radixRunnable = new RadixSort(toBeSorted, getNumDigits(toBeSorted.length)); - arrayList.add(new Thread(radixRunnable, "Radix Sort")); - } - else if(indexOf(sortOptions, "Cocktail Shaker") == toFind) - { - Runnable cocktailRunnable = new CocktailShakerSort(toBeSorted); - arrayList.add(new Thread(cocktailRunnable, "Cocktail Shaker Sort")); - } - else if(indexOf(sortOptions, "Gnome Bubble") == toFind) - { - Runnable gnomeBubbleRunnable = new GnomeBubbleSort(toBeSorted); - arrayList.add(new Thread(gnomeBubbleRunnable, "Gnome Bubble Sort")); - } - else if(indexOf(sortOptions, "Gnome Insertion") == toFind) - { - Runnable gnomeInsertionRunnable = new GnomeInsertionSort(toBeSorted); - arrayList.add(new Thread(gnomeInsertionRunnable, "Gnome Insertion Sort")); - } - else if(indexOf(sortOptions, "Odd-Even") == toFind) - { - Runnable oddEvenRunnable = new OddEvenSort(toBeSorted); - arrayList.add(new Thread(oddEvenRunnable, "Odd-Even Sort")); - } - else - { - System.out.println("Could not find " + toFind + "\nSkipping"); - } - } - - public static String createListString(String[] array) - { - String str = ""; - for(int i = 1; i < array.length; i++) - { - str += i + ".)" + array[i] + " "; - if(i % 1 == 0) - { - str += "\n"; - } - } - - return str; - } - - public static int[] generateArray(int type, int max) - { - int[] tBSort = new int[max]; - switch(type) - { - case 1: - //random - System.out.println("\nGenerating random array of " + max + " integers"); - for(int i = 0; i < max; i++) - { - tBSort[i] = (int)(Math.random() * max); - } - break; - case 2: - //backwards - System.out.println("\nGenerating backwards array of " + max + " integers"); - for(int i = 0; i < max; i++) - { - tBSort[max-1-i] = i; - } - break; - case 3: - //almost sorted - System.out.println("\nGenerating almost sorted array of " + max + " integers"); - for(int i = 0; i < max; i++) - { - if(i < (int)(max * .75)) - { - tBSort[i] = i; - } - else - { - tBSort[i] = (int)(Math.random() * max); - } - } - break; - case 4: - //few unique - for(int i = 0; i < 5; i++) - { - for(int q = 0; q < max/5; q++) - { - //doesn't work yet... - } - } - break; - } - - return tBSort; - } - - public static int indexOf(String[] array, String item) - { - for(int i = 1; i < array.length;i++) - { - if(array[i].compareTo(item) == 0) - { - return i; - } - } - return -1; - } - - private static int getNumDigits(int num) - { - if(num == 0) - { - return 0; - } - else - { - return 1+ getNumDigits(num/10); - } - } - - private static void printMe(int[] nums) - { - for(int i = 0; i < nums.length;i++) - { - System.out.print(nums[i] + ","); - } - } -} \ No newline at end of file diff --git a/DSFinal/src/dsfinal/main.java b/DSFinal/src/dsfinal/main.java index bf9e29d..d7c6a80 100644 --- a/DSFinal/src/dsfinal/main.java +++ b/DSFinal/src/dsfinal/main.java @@ -125,7 +125,6 @@ public static void setUpMenus() for(int i = 1; i < sortOptionsNG.length; i++) { JCheckBox cb = new JCheckBox(sortOptionsNG[i]); - //cb.addActionListener(e -> setUpNG()); sortListNG[i] = cb; nonGraphical.add(cb); @@ -227,7 +226,7 @@ public static void startTimer() { try { - lengthOfSortList = Integer.valueOf(response); + lengthOfSortList = Math.abs(Integer.valueOf(response)); setUpNG(); break; } @@ -304,22 +303,27 @@ public static void setUpNG() int typeofSort = 0; String response = JOptionPane.showInputDialog("Please enter the type of array you want to sort\n1.)Random\n2.)Backwards\n3.)Almost Sorted\n"); - while(true) + while(true) + { + try { - try + while(true) { typeofSort = Integer.valueOf(response); if(typeofSort == 1 || typeofSort == 2 ||typeofSort == 3) { break; } - } - catch(Exception e) - { response = JOptionPane.showInputDialog("Please enter the type of array you want to sort\n1.)Random\n2.)Backwards\n3.)Almost Sorted\n"); - } + break; } + catch(Exception e) + { + response = JOptionPane.showInputDialog("Please enter the type of array you want to sort\n1.)Random\n2.)Backwards\n3.)Almost Sorted\n"); + + } + } int[] toBeSorted = generateArray(typeofSort, 10000); @@ -327,7 +331,7 @@ public static void setUpNG() sorts.ensureCapacity(sortListNG.length); for(int i = 1; i < sortListNG.length; i++) { - if(sortListNG[i].isSelected())// sortListNG[i].&& sorts.size() == i-1 && sorts.get(i).getName().equals(sortListNG[i].getText() + " Sort") == false) + if(sortListNG[i].isSelected()) { String sortSTR = sortListNG[i].getText();