第一种方法:(不限制输入数组的长度)
基本思想:将待插入元素依次跟前面已经排好的元素相比较,如果选择的待插入元素比已排序的元素小,则已排序元素后移,待插入元素继续与前一个元素比较,直到找到合适插入位置插入。
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Scanner;
public class Direct {
public static void main(String[] args) {
System.out.print("请输入几个数并用逗号隔开(英文输入法的逗号):");
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
String[] arrays = str.split(","); //String的字符分割方法
int[] arr = new int[arrays.length]; //把输入的字符放进新new的数组中
for(int j = 0; j<arr.length;j++){
arr[j] = Integer.parseInt(arrays[j]); //方法用于解析字符串,并返回一个整数。存进数组
}
/*直接排序*/
for (int i = 0; i < arr.length; i++) {
for (int k = i; k < arr.length; k++) {
if (arr[i] > arr[k]){
int temp = arr[i];
arr[i] = arr[k];
arr[k] = temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
第二种方法:(限制输入的个数)
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Scanner;
public static void main(String[] args) {
System.out.print("请输入5个数:");
Scanner scanner = new Scanner(System.in);
int[] arr = new int[5]; //把输入的字符放进新new的数组中
for(int j = 0; j<arr.length;j++){
arr[j] = scanner.nextInt(); //方法用于解析字符串,并返回一个整数。存进数组
}
/*直接排序*/
for (int i = 0; i < arr.length; i++) {
for (int k = i; k < arr.length; k++) {
if (arr[i] > arr[k]){
int temp = arr[i];
arr[i] = arr[k];
arr[k] = temp;
}
}
}
System.out.println(Arrays.toString(arr));
}