有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

来源:互联网 发布:女朋友太紧 知乎 编辑:程序博客网 时间:2024/05/29 09:22

题目:

有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

程序分析:

首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。

代码:

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;    }}

运行结果:

0 1 2 3 4 5 7 8 9 12 请输入10个数的数组:
阅读全文
0 0
原创粉丝点击