java有一个已经排好序的数组插入一个数编程

经典的java编程题有很多,下面要给大家带来的是一个比较简单的编程题,有一个已经是排好序的数组,现在的话按照原来的规律将一个数插入到这个数组当中,一起来看看java应该如何编程吧。

下面是具体的编程题目。

一、题目

有一个已经排好序的数组。

现在的话是这样,输入一个数,要求是按照原来的规律,将这个数插入到这个已经排好序的数组当中。

题目你都了解了吧?那么看到这里,你会如何去解题呢?你有自己的解题思路了吗?

解题的方式有很多种,下面就一起来看看大多数人都会选择用的解题思路吧。

二、思路

根据题目,我们可以形成下面的解题思路,首先的话,我们要判断这个数是不是要比最后一个数大,之后,再来考虑插入到中间数的情况。

插入后此元素之后的数,依次的向后移动一个位置。

好啦,上面就是一个解题的思路啦,根据这个解题思路,我们来看一下这道题目的答案吧!

三、代码实现

import java.util.Scanner;
public class Prog30{
public static void main(String[] args){
int[] A = new int[]{0,8,7,5,9,1,2,4,3,12};
int[] B = sort(A);
print(B);
System.out.println();
        System.out.print("请输入10个数的数组:");
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
scan.close();
int[] C = insert(a,B);
print(C);
}
//选择排序
private static int[] sort(int[] A){
int[] B = new int[A.length];
for(int i=0;i<A.length-1;i++){
int min = A[i];
for(int j=i+1;j<A.length;j++){
if(min>A[j]){
int temp = min;
min = A[j];
A[j] = temp;
}
B[i] = min;
}
}
B[A.length-1] = A[A.length-1];
return B;
}
//打印
private static void print(int[] A){
for(int i=0;i<A.length;i++)
  System.out.print(A[i]+" ");
}
//插入数字
private static int[] insert(int a,int[] A){
int[] B = new int[A.length+1];
for(int i=A.length-1;i>0;i--)
  if(a>A[i]){
   B[i+1] = a;
    for(int j=0;j<=i;j++)
      B[j] = A[j];
      for(int k=i+2;k<B.length;k++)
        B[k] = A[k-1];
      break;
  }
return B;
}
}

看完了上面的内容,你自己又有什么样思路和方式来对这道题目进行解答呢?你还想了解更多的java编程题吗?欢迎继续通过奇Q工具网的java实例栏目来进行了解和学习吧!

更多java编程经典例题可以分享给你呢。

推荐阅读:

java入门程序编程题,一球100米自由落下编程

java编程,输入三个整数xyz,由小到大输出

java编程,输入某年某月某日,判断这一天是这一年的第几天?