基于算法导论 实现
public class ExampleUnitTest {
@Test
public void addition_isCorrect() throws Exception {
assertEquals(4, 2 + 2);
}
@Test
public void sort() throws Exception {
bubbleSort();
selectSort();
insertSort();
shellSort();
mergeSort();
quickSort();
heapSort();
}
int[] inputs = {100, 120, 108, 109, 110, 160, 99, 89, 30, 150, 119, 200, 50, 33};
public int[] getInput() {
int s = inputs.length;
int[] data = new int[s];
for (int i = 0; i < s; i++) {
data[i] = inputs[i];
}
return data;
}
//数据交换
public void swap(int[] a, int i, int j) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
public void print(int[] a,String title) {
System.out.print(title+":\t");
for(int num:a) {
System.out.print(num + " ");
}
System.out.println();
}
//冒泡排序
@Test
public void bubbleSort() throws Exception {
int[] a = getInput();
int size = a.length;
for(int i=0;i<size-1;i++){
for(int k=size-1;k>i;k--){
if(a[k]<a[k-1]){
swap(a,k,k-1);
}
}
}
print(a,"冒泡排序");
bubbleDown();
}
public void bubbleDown() {
int[] a = getInput();
int size = a.length;
for(int i=0;i<size-1;i++){
for(int j=size-1;j>i;j--){
if(a[j]>a[j-1]){
swap(a,j,j-1);