Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 3466a71

Browse files
committed
Test: unit tests
- unit test quicksort. - unit test insertionsort.
1 parent 4ad64b8 commit 3466a71

File tree

4 files changed

+73
-10
lines changed

4 files changed

+73
-10
lines changed
1.6 KB
Binary file not shown.
2.03 KB
Binary file not shown.
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package edu.bostonuniversity.playground;
2+
3+
public class Playground {
4+
private static void insertionsort(int[] data, int n) {
5+
int i, lt;
6+
7+
for (i = 1; i <= n; i++) {
8+
lt = i - 1;
9+
while (lt >= 0 && data[lt] > data[i]) { swap(data, lt--, i--); }
10+
}
11+
}
12+
13+
public static void insertionsort(int[] data) { insertionsort(data, data.length - 1); }
14+
15+
private static int partition(int[] data, int lo, int hi) {
16+
int i, j, k, pivot, pivotIndex;
17+
18+
i = lo + (int) (Math.random() * (hi - lo));
19+
j = lo + (int) (Math.random() * (hi - lo));
20+
k = lo + (int) (Math.random() * (hi - lo));
21+
pivot = Math.max(Math.min(data[i], data[j]), Math.min(Math.max(data[i], data[j]), data[k]));
22+
23+
if (data[i] == pivot) { pivotIndex = i; }
24+
else if (data[j] == pivot) { pivotIndex = j; }
25+
else { pivotIndex = k; }
26+
27+
swap(data, lo, pivotIndex);
28+
return pivot;
29+
}
30+
31+
private static void quicksort(int[] data, int lo, int hi) {
32+
int i, gt, lt, pivot;
33+
34+
if (hi <= lo) { return; }
35+
36+
pivot = partition(data, lo, hi);
37+
38+
i = lo + 1;
39+
gt = hi;
40+
lt = lo;
41+
while (i <= gt) {
42+
if (data[i] < pivot) { swap(data, lt++, i++); }
43+
else if (data[i] > pivot) { swap(data, i, gt--); }
44+
else { i++; }
45+
}
46+
quicksort(data, lo, lt - 1);
47+
quicksort(data, gt + 1, hi);
48+
}
49+
50+
public static void quicksort(int[] data) { quicksort(data, 0, data.length - 1); }
51+
52+
private static void swap(int[] data, int lo, int hi) {
53+
int temp = data[lo];
54+
data[lo] = data[hi];
55+
data[hi] = temp;
56+
}
57+
}

‎Data Structures with Java/Code/src/edu/bostonuniversity/utils/SortTest.java renamed to ‎Data Structures with Java/Code/src/edu/bostonuniversity/playground/Testground.java

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
package edu.bostonuniversity.utils;
1+
package edu.bostonuniversity.playground;
22

3-
public class SortTest {
3+
public class Testground {
44
public static void main(String[] args) {
5-
SortTestsort = new SortTest();
6-
sort.doIt();
5+
Testgroundtest = new Testground();
6+
test.doIt();
77
}
88

99
public void doIt() {
@@ -20,12 +20,14 @@ public void doIt() {
2020
// Quicksort test
2121
System.out.println("Starting quick sort");
2222
start = System.nanoTime();
23-
Quicksort.quicksort(data);
24-
//Playground.quicksort(data);
23+
//Quicksort.quicksort(data);
24+
Playground.quicksort(data);
2525
end = System.nanoTime();
2626
time = end - start;
2727
System.out.println("Quick sort took: " + time / 1000000000.0 + " seconds");
28-
for (int datum : data) { System.out.print(datum + " "); }
28+
for (int datum : data) {
29+
System.out.print(datum + " ");
30+
}
2931

3032
// Randomize data again for insertion sort
3133
for (int i = 0; i < data.length; i++) {
@@ -35,11 +37,15 @@ public void doIt() {
3537

3638
System.out.println("\n\nStarting insertion sort");
3739
start = System.nanoTime();
38-
Insertionsort.insertionsort(data);
39-
//Playground.insertionsort(data);
40+
//Insertionsort.insertionsort(data);
41+
Playground.insertionsort(data);
4042
end = System.nanoTime();
4143
time = end - start;
4244
System.out.println("Insertion sort took: " + time / 1000000000.0 + " seconds");
43-
for (int datum : data) { System.out.print(datum + " "); }
45+
for (int datum : data) {
46+
System.out.print(datum + " ");
47+
}
4448
}
4549
}
50+
51+

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /