Fixed the path finding algos a bit
This commit is contained in:
parent
0f85e1b4dd
commit
c161e4bdd8
11 changed files with 240 additions and 205 deletions
|
|
@ -1,63 +0,0 @@
|
|||
package zutil.test;
|
||||
import zutil.algo.sort.QuickSort;
|
||||
import zutil.algo.sort.sortable.SortableIntArray;
|
||||
import junit.framework.*;
|
||||
|
||||
public class QuickSortTestSimple extends TestCase {
|
||||
|
||||
public static void main(String[] args){
|
||||
int[] array = new int[1000];
|
||||
|
||||
for(int i=0; i<array.length ;i++){
|
||||
array[i] = (int)(Math.random()*10000);
|
||||
}
|
||||
|
||||
for(int i=0; i<array.length ;i++){
|
||||
System.out.println(array[i]);
|
||||
}
|
||||
|
||||
//quicksort(array, 0, array.length-1);
|
||||
|
||||
QuickSort.sort(new SortableIntArray(array));
|
||||
|
||||
System.out.println("----------------------------------");
|
||||
for(int i=0; i<array.length ;i++){
|
||||
System.out.println(array[i]);
|
||||
}
|
||||
|
||||
System.out.println("----------------------------------");
|
||||
for(int i=1; i<array.length ; i++){
|
||||
if(array[i-1] > array[i]){
|
||||
System.out.println("Array not sorted!! ("+array[i-1]+" > "+array[i]+")");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void quicksort (int[] a, int lo, int hi) {
|
||||
// lo is the lower index, hi is the upper index
|
||||
// of the region of array a that is to be sorted
|
||||
int i=lo, j=hi, h;
|
||||
int x=a[(lo+hi)/2];
|
||||
|
||||
// partition
|
||||
do
|
||||
{
|
||||
while (a[i]<x){
|
||||
i++;
|
||||
}
|
||||
while (a[j]>x){
|
||||
j--;
|
||||
}
|
||||
if (i<=j)
|
||||
{
|
||||
h=a[i]; a[i]=a[j]; a[j]=h;
|
||||
i++; j--;
|
||||
}
|
||||
} while (i<=j);
|
||||
|
||||
// recursion
|
||||
if (lo<j) quicksort(a, lo, j);
|
||||
if (i<hi) quicksort(a, i, hi);
|
||||
}
|
||||
|
||||
}
|
||||
44
src/zutil/test/SortTestSimple.java
Normal file
44
src/zutil/test/SortTestSimple.java
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
package zutil.test;
|
||||
import zutil.algo.sort.QuickSort;
|
||||
import zutil.algo.sort.SimpleSort;
|
||||
import zutil.algo.sort.sortable.SortableIntArray;
|
||||
import junit.framework.*;
|
||||
|
||||
public class SortTestSimple extends TestCase {
|
||||
public static final int SIZE = 10000;
|
||||
public static final int MAX_INT = 10000;
|
||||
|
||||
public static void main(String[] args){
|
||||
int[] array = new int[SIZE];
|
||||
|
||||
for(int i=0; i<array.length ;i++){
|
||||
array[i] = (int)(Math.random()*MAX_INT);
|
||||
}
|
||||
|
||||
for(int i=0; i<array.length ;i++){
|
||||
System.out.print(array[i]+", ");
|
||||
}
|
||||
|
||||
long time = System.currentTimeMillis();
|
||||
//SimpleSort.bubbleSort(new SortableIntArray(array));
|
||||
//SimpleSort.selectionSort(new SortableIntArray(array));
|
||||
SimpleSort.insertionSort(new SortableIntArray(array));
|
||||
//QuickSort.sort(new SortableIntArray(array));
|
||||
time = System.currentTimeMillis() - time;
|
||||
|
||||
System.out.println("\n--------------------------------------------");
|
||||
System.out.print(array[0]+", ");
|
||||
int error = -1;
|
||||
for(int i=1; i<array.length ;i++){
|
||||
System.out.print(array[i]+", ");
|
||||
if(array[i-1] > array[i]){
|
||||
error = i;
|
||||
}
|
||||
}
|
||||
|
||||
if(error >= 0){
|
||||
System.out.println("\nArray not sorted!! ("+array[error-1]+" > "+array[error]+")");
|
||||
}
|
||||
System.out.println("\nTime: "+time+" ms");
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue