题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
这是根据从小到大的排序去完成的
package cn.ls.lanqiao;
import java.util.*;
public class Test30 {
public static void main(String[] args) {
int[] a = new int[] { 1, 3, 5, 7, 8 };
int index = -1;
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] b = new int[a.length + 1];
System.out.println("插入元素之前:");
for (int i = 0; i < a.length; i++) {
b[i] = a[i];
System.out.print(b[i] + " ");
}
System.out.println();
if (n >= a[a.length - 1]) {
b[a.length] = n;
} else {
for (int j = 0; j < b.length; j++) {
if (n < b[j]) {
index = j;
break;
}
}
// 把index之后的数组的元素的值。给它的下一个下标。
for (int k = b.length - 1; k > index; k--) {
b[k] = b[k - 1];
}
b[index] = n;
}
System.out.println("插入元素之后:");
for (int l = 0; l < b.length; l++) {
System.out.print(b[l] + " ");
}
}
}
这是根据从大到小的排序完成的(只是略微的变化,说白了就是符号变了变)
package cn.ls.lanqiao;
import java.util.*;
public class Test30 {
public static void main(String[] args) {
int[] a = new int[] { 8, 7, 6, 4, 3 };
int index = -1;
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] b = new int[a.length + 1];
System.out.println("插入元素之前:");
for (int i = 0; i < a.length; i++) {
b[i] = a[i];
System.out.print(b[i] + " ");
}
System.out.println();
if (n < a[a.length - 1]) {
b[a.length] = n;
} else {
for (int j = 0; j < b.length; j++) {
if (n >= b[j]) {
index = j;
break;
}
}
// 把index之后的数组的元素的值。给它的下一个下标。
for (int k = b.length - 1; k > index; k--) {
b[k] = b[k - 1];
}
b[index] = n;
}
System.out.println("插入元素之后:");
for (int l = 0; l < b.length; l++) {
System.out.print(b[l] + " ");
}
}
}