简单冒泡排序,并且简单优化,减少遍历。
public class Maopao {
public static void main(String[] args) {
int[] arr = {0,2,3,5,6,8,9,1,4,7};
test(arr);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] +" ");
}
}
public static void test(int[] arr) {
for (int j = 0; j arr[i + 1]) {
a = false;
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
//减少遍历次数 没有交换就跳出循环
if (a) break;
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] +" ");
}
System.out.println();
}
}
}
2.插入排序
public class ChaRu {
public static void main(String[] args) {
int[] arr = {8,5,0,1,4,9,2,3,6,7};
test(arr);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] +" ");
}
}
public static void test(int[] arr) {
for (int i = 0; i < arr.length; i++) {
int temp = arr[i];
int j = i - 1;
while (j>= 0 && temp < arr[j]){
arr[j+1] = arr[j];
j--;
}
arr[j+1] = temp;
for (int a = 0; a < arr.length; a++) {
System.out.print(arr[a] +" ");
}
System.out.println();
}
}
}
3.选择排序
public class XuanZe {
public static void main(String[] args) {
int[] arr = {8, 5, 0, 1, 4, 9, 2, 3, 6, 7};
test(arr);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
public static void test(int[] arr) {
for (int i = 0; i < arr.length-1; i++) {
int min = arr[i],pos = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < min){
min = arr[j];
pos = j;
}
}
int temp = arr[i];
arr[i] = arr[pos];
arr[pos] = temp;
}
}
}


