2.1.1 Bubble Sort
以後再補
package idv.carl.sorting.bubblesort;
/**
* @author Carl Lu
*/
public class BubbleSort {
private static void swap(int[] input, int i, int j) {
int tmp = input[i];
input[i] = input[j];
input[j] = tmp;
}
public static int[] sortDesc(int[] input) {
for (int i = 0; i < input.length - 1; i++) {
for (int j = 0; j < input.length - 1 - i; j++) {
if (input[j] < input[j + 1]) {
swap(input, j, j + 1);
}
}
}
return input;
}
public static int[] sortAsc(int[] input) {
for (int i = 0; i < input.length - 1; i++) {
for (int j = 0; j < input.length - 1 - i; j++) {
if (input[j] > input[j + 1]) {
swap(input, j, j + 1);
}
}
}
return input;
}
}
原始碼點我
Unit test
package idv.carl.sorting.bubblesort;
import static org.junit.Assert.assertArrayEquals;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
/**
* @author Carl Lu
*/
public class BubbleSortTest {
private static int[] input;
private static int[] expectedDesc = new int[] {45, 34, 26, 13, 12, 9, 7, 3, 1, -1};
private static int[] expectedAsc = new int[] {-1, 1, 3, 7, 9, 12, 13, 26, 34, 45};
@Before
public void init() {
input = new int[] {12, 45, 1, 3, -1, 34, 13, 7, 9, 26};
}
@After
public void destroy() {
input = null;
}
@Test
public void testSortDesc() {
assertArrayEquals(expectedDesc, BubbleSort.sortDesc(input));
}
@Test
public void testSortAsc() {
assertArrayEquals(expectedAsc, BubbleSort.sortAsc(input));
}
}
原始碼點我
Last updated