三大排序
import java.util.Arrays;
public class ArraySort {
public static void main(String[] args) {
int[] arr={43,21,40,35,87,15};
//选择排序
//choiceSort(arr);
//冒泡排序
//buddleSort(arr);
//插入排序
insertSort(arr);
}
public static void insertSort(int[] arr) {
//21,35,40, 43,87,15
for(int j=1;j
int i=j-1; //i:2 1
/*for(;i>=0;i--){
//i:2: 43>35
//i:1: 40>35
//i:0: 21>35
if(arr[i]>tmp){
arr[i+1]=arr[i];
}else{
break;
}
}*/
for(;i>=0&&arr[i]>tmp;i--){
arr[i+1]=arr[i];
}
arr[i+1]=tmp;
System.out.println(
"最终结果为:"+Arrays.toString(arr));
}
}
public static void buddleSort(int[] arr) {
System.out.println("排序前的结果为:"
+Arrays.toString(arr));
for(int j=0;j<=arr.length-2;j++){
for(int i=0;i<=arr.length-2-j;i++){
System.out.println("第"+i+"次交换前:"
+Arrays.toString(arr));
if(arr[i]>arr[i+1]){
int tmp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=tmp;
}
System.out.println("第"+i+"次交换后:"
+Arrays.toString(arr));
}
System.out.println("排序的结果为:"
+Arrays.toString(arr));
}
}
public static void choiceSort(
int[] arr) {
for(int i=0;i<=arr.length-2;i++){
for(int j=i+1; j<=arr.length-1;
j++){
System.out.println("第"+
j+"次交换前:"+Arrays.toString(arr));
if(arr[i]>arr[j]){
int tmp=arr[j];
arr[j]=arr[i];
arr[i]=tmp;
}
System.out.println("第"+
j+"次交换后:"+Arrays.toString(arr));
}
}
System.out.println("排序的结果为:"
+Arrays.toString(arr));
}
}
给你写了一个,供你参考参考。。
就是比较开头字符而已,估计会自动转型比较,应该是直接的。就是个冒泡嘛