java:三种经典大排序汇总,冒泡,插入,选择
package arrays.myArray;
public class SortArr {
public static void main(String[] args) {
int[] arrInt = { 4, 7, 8, 5, 6, 3, 2, 3, 4 };
maoPaoSort(arrInt);
print("冒泡排序:", arrInt);
arrInt = new int[]{ 4, 7, 8, 5, 6, 3, 2, 3, 4 };
insertSort(arrInt);
print("插入排序:", arrInt);
arrInt = new int[]{ 4, 7, 8, 5, 6, 3, 2, 3, 4 };
checkSort(arrInt);
print("选择排序:", arrInt);
}
// 冒泡排序
private static void maoPaoSort(int[] arrInt) {
int temp = 0;
for (int i = 0; i < arrInt.length; i++) {
for (int j = 0; j < arrInt.length - 1; j++) {
if (arrInt[i] < arrInt[j]) {
temp = arrInt[i];
arrInt[i] = arrInt[j];
arrInt[j] = temp;
}
}
}
}
// 插入排序
private static void insertSort(int[] arrInt) {
//倒数第二个开始比较
for (int i = arrInt.length - 2; i >= 0; i--) {
int j = 0;
for (j = arrInt.length - 1; j > i; j--) {
if (arrInt[i] > arrInt[j]) {
break;
}
}
int temp = arrInt[i];
for (int k = i; k < j; k++) {
arrInt[k] = arrInt[k + 1];
}
arrInt[j] = temp;
}
//正数第二个开始比较
/*for (int i = 1; i < arrInt.length; i++) {
int j = 0;
for (j = 0; j < arrInt.length - 1; j++) {
if (arrInt[i] > arrInt[j]) {
break;
}
}
int temp = arrInt[j];
for (int k = arrInt.length - 1; k > 0; k--) {
arrInt[k - 1] = arrInt[k];
}
arrInt[i] = temp;
}*/
}
// 选择排序
private static void checkSort(int[] arrInt) {
int min = 0;
int temp = 0;
// 1、记录最小值
/*
* for (int i = 0; i < arrInt.length; i++) { int min = arrInt[i]; for
* (int j = i + 1; j < arrInt.length; j++) { if (minValue > arrInt[j]) {
* temp = min; min = arrInt[j]; arrInt[j] = temp; } } arrInt[i] = min; }
*/
// 2、记录最小下标
for (int i = 0; i < arrInt.length; i++) {
min = i;
for (int j = i + 1; j < arrInt.length; j++) {
if (arrInt[min] > arrInt[j]) {
temp = arrInt[min];
arrInt[min] = arrInt[j];
arrInt[j] = temp;
}
}
i = min;
}
}
// 遍历
public static void print(String str, int[] arrInt) {
System.out.println(str);
/*
* for (int i = 0; i < arrInt.length; i++) {
* System.out.println(arrInt[i]); }
*/
for (int i : arrInt) {
System.out.print(i + ",");
}
System.out.println();
}
}