Java写 插入 选择 冒泡 快排

时间:2023-12-13 16:48:50
/**
* Created by wushuang on 2014/11/19.
*/
public class SortTest { @Test
public void mainTest() {
int[] arr = new int[]{1, 8, 3, 2, 5, 6, 100, 23, 30, 12, 90, 3265, 0};
//insertSort(arr);
// selectionSort(arr);
// popSort(arr);
quickSort(arr, 1, arr.length - 1);
System.out.println(StringUtils.join(arr, ','));
} /**
* 插入
* 选择
* 冒泡
*/
public void insertSort(int[] targetArr) {
for (int i = 1; i < targetArr.length; i++) {
if (targetArr[i - 1] > targetArr[i]) {
int targetItem = targetArr[i];
int j = i - 1; while (j >= 0 && targetArr[j] > targetItem) {
targetArr[j + 1] = targetArr[j];
j--;
System.out.println(j);
}
targetArr[j + 1] = targetItem;
} }
System.out.println("insertSort:");
System.out.println(StringUtils.join(targetArr, ',')); } public void selectionSort(int[] targetArr) {
int minIndex = 0;
for (int i = 0; i < targetArr.length - 1; i++) {
minIndex = i;
for (int j = i + 1; j < targetArr.length; j++) {
if (targetArr[j] < targetArr[minIndex]) {
minIndex = j;
}
}
int temp = targetArr[i];
targetArr[i] = targetArr[minIndex];
targetArr[minIndex] = temp;
}
System.out.println("selectionSort:");
System.out.println(StringUtils.join(targetArr, ','));
} public void popSort(int[] targetArr) {
for (int i = 0; i < targetArr.length - 1; i++) {
for (int j = 0; j < targetArr.length - i - 1; j++) {
if (targetArr[j + 1] < targetArr[j]) {
int temp = targetArr[j + 1];
targetArr[j + 1] = targetArr[j];
targetArr[j] = temp;
}
}
}
System.out.println("popSort:");
System.out.println(StringUtils.join(targetArr, ','));
} public void quickSort(int[] targetArr, int leftIndex, int rightIndex) {
if (leftIndex>rightIndex){
// System.out.println("stop");
// System.out.println(leftIndex);
// System.out.println(rightIndex);
return;
}
int temp = targetArr[leftIndex];
int i = leftIndex;
int j = rightIndex;
while (i != j) {
while (targetArr[j] >= temp && i < j) {
j--;
}
while (targetArr[i] <= temp && i < j) {
i++;
}
if (i < j) {
int iTempVal = targetArr[i];
targetArr[i] = targetArr[j];
targetArr[j] = iTempVal;
}
}
targetArr[leftIndex] = targetArr[i];
targetArr[i] = temp; quickSort(targetArr, 0, i - 1);
quickSort(targetArr, i + 1, rightIndex); }
}