1.冒泡排序
每次确定一个最大或最小的数在最后,因此n个数则需要排n-1次
每次循环,两两比较,如果前一个数大于后一个数,则交换,使每次比较的最后一个数最大
public static void bubbleSort(int[] binary) {
int len = binary.length;
boolean flag = false;
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - 1 - i; j++) {
if (binary[j] > binary[j + 1]) {
flag = true;
int temp = binary[j];
binary[j] = binary[j + 1];
binary[j + 1] = temp;
}
}
if (!flag) {
break;
} else {
flag = false;
}
}
}
2.选择排序
public static void selectSort(int[] arr) {
int len = arr.length;
for (int i = 0; i < len - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < len; j++) {
if (arr[minIndex] > arr[j]) {
minIndex = j;
}
}
if (minIndex != i) {
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
3.插入排序
public static void insertSort(int[] arr) {
int len = arr.length;
for (int i = 0; i < len - 1; i++) {
for (int j = i + 1; j > 0; j--) {
if (arr[j] < arr[j - 1]) {
int temp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = temp;
} else {
break;
}
}
}
}