目录
冒泡排序
public class MyTest {
public static void main(String[] args) {
int[] arr = new int[]{23, 21, 3, 56, 13, 16, 5, 8, 65, 98, 213, 43};
for (int i = 0; i < arr.length - 1; i++) { //走几趟
for (int j = 0; j < arr.length - 1 - i; j++) { //比较次数
if (arr[j] > arr[j + 1]) {
int temp=arr[j];
arr[j] = arr[j+1];
arr[j + 1] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+"\t");
}
}
}
选择排序
public class MyTest {
public static void main(String[] args) {
int[] arr = new int[]{23, 21, 3, 56, 13, 16, 5, 8, 65, 98, 213, 43};
sort(arr);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+"\t");
}
}
public static void sort(int arr[]) {
for (int i = 0; i < arr.length - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
}
快速插入排序
public class MyTest {
public static void main(String[] args) {
int[] arr = new int[]{23, 21, 3, 56, 13, 16, 5, 8, 65, 98, 213, 43};
for (int i = 1; i < arr.length; i++) { //要插入数的下标
for (int j = i; j > 0; j--) { //从后往前比较
if (arr[j] < arr[j - 1]) {
int temp = arr[j];
arr[j] = arr[j - 1];
arr[j-1] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+"\t");
}
}
}
快速排序
public class MyTest {
public static void main(String[] args) {
int[] arr = new int[]{23, 21, 3, 56, 13, 16, 5, 8, 65, 98, 213, 43};
quickSort(arr,0,arr.length-1);
System.out.println(Arrays.toString(arr));
}
public static void quickSort(int arr[], int start, int end) {
if (start < end) {
int index = getIndex(arr, start, end); //返回基准数的索引
quickSort(arr, start, index - 1); //递归调用,对基准数左边部分进行排序
quickSort(arr, index + 1, arr.length - 1);递归调用,对基准数右边部分进行排序
}
}
public static int getIndex(int arr[], int start, int end) {
int i = start;
int j = end;
int x = arr[i]; //第一个数为基准数
while (i < j && arr[j] > x) {
j--;
}
while(i<j) {
if (i < j) {
arr[i] = arr[j];
i++;
}
while (i < j && arr[i] < x) {
i++;
}
if (i < j) {
arr[j] = arr[i];
j--;
}
}
arr[i] = x;
return i;
}