1.冒泡排序,稳定
package 交换排序;
import java.util.Arrays;
public class bubbleSort {
public static void bubbleSortmethod(int[] array) {
for (int i = 0; i < array.length - 1; i++) {
for (int j = 0; j < array.length - 1 - i; j++) {
if (array[j] > array[j + 1]) {
int tmp = array[j];
array[j] = array[j + 1];
array[j + 1] = tmp;
}
}
}
}
public static void bubbleSort2(int[] array) {
for (int i = 0; i < array.length - 1; i++) {
boolean flg = false;
for (int j = 0; j < array.length - 1 - i; j++) {
if (array[j] > array[j + 1]) {
int tmp = array[j];
array[j] = array[j + 1];
array[j + 1] = tmp;
flg = true;
}
}
if (flg == false) {
break;
}
}
}
public static void main (String[] args){
int[] array = {8, 4, 7, 9, 3};
bubbleSort2(array);
System.out.println(Arrays.toString(array));
}
}
2.快速排序
package 交换排序;
import java.util.Arrays;
public class quick {
public static int partion(int[] array,int start,int end){
int tmp = array[start];
while (start < end) {
while (start < end && array[end] >= tmp) {
end--;
}
if (start >= end) {
array[start] = tmp;
break;
} else {
array[start] = array[end];
}
while (start < end && array[end] <= tmp) {
start++;
}
if (start >= end) {
array[start] = tmp;
break;
} else {
array[end] = array[start];
}
}
return start;
}
public static void quickSort(int[] array,int low,int high){
if (low>=high){
return;
}
int par=partion(array,low,high);
quickSort(array,low,par-1);
quickSort(array,par+1,high);
}
public static void main (String[] args){
int[] array = {8, 4, 7, 9, 3};
quickSort(array,0,array.length-1);
System.out.println(Arrays.toString(array));
}
}