用JAVA,手写代码,实现对10个字符串进行排序 ,不能使用Arrays.sort()方法。

2024-12-02 17:55:02
推荐回答(3个)
回答1:

三大排序
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 tmp=arr[j];//35
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));
}

}

回答2:

给你写了一个,供你参考参考。。

回答3:

就是比较开头字符而已,估计会自动转型比较,应该是直接的。就是个冒泡嘛