fork download
  1. import java.util.Arrays;
  2. import java.util.*;
  3.  
  4. class Hello {
  5. /**
  6.   * 在一组有序数中插入一个数
  7.   * @param ns 是一个组有序数
  8.   * @param value 需要插入到有序数中的数
  9.   */
  10. public static int insert(int[] ns, int value) {
  11. int idx = 0;
  12. for (int i = 0; i < ns.length; ++i) {
  13. if (ns[i] >= value) { // 找到需要插入的位置
  14. idx = i;
  15. for (int j = ns.length - 1; j > i; --j) {
  16. ns[j] = ns[j - 1];
  17. }
  18.  
  19. ns[i] = value;
  20. break;
  21. }
  22. }
  23. return idx;
  24. }
  25.  
  26. public static void main(String[] args) {
  27. int[] ns = { 1,3,6,9,14,16,58,99};
  28.  
  29. System.out.println("原始数据是:\n" + Arrays.toString(ns) + "\n请输入要插入的程序:");
  30. Scanner scanner=new Scanner(System.in);
  31. int value = scanner.nextInt();
  32. int[] ns1 = ns;
  33. ns = new int[ns1.length + 1];
  34. for (int i = 0; i < ns1.length; i++) ns[i] = ns1[i];
  35. int x = insert(ns, value);
  36. System.out.println("After insert: " + Arrays.toString(ns) + "\n插入的下标是" + x);
  37. }
  38. }
Success #stdin #stdout 0.12s 29352KB
stdin
2
stdout
原始数据是:
[1, 3, 6, 9, 14, 16, 58, 99]
请输入要插入的程序:
After  insert: [1, 2, 3, 6, 9, 14, 16, 58, 99]
插入的下标是1