import java.util.Scanner;
/*
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的
数,依次后移一个位置
*/
public class InsertDigit {
private static int[] insert(int num,int arr[])
{
int arrTemp[]=new int[arr.length+1];//存放插入后的序列
if(num>=arr[arr.length-1])//比最后一个数大,插入末尾
{
for(int n=0;n<arr.length;n++)
{
arrTemp[n]=arr[n];
}
arrTemp[arr.length]=num;
}
if(num<=arr[0])//比第一个数小
{
for(int i=arr.length-1;i>=0;i--)
{
arrTemp[i+1]=arr[i];
}
arrTemp[0]=num;
}
else
{
for(int j=0;j<arr.length;j++)
{
arrTemp[j]=arr[j];
if(arr[j]>num)
{
for(int k=arr.length-1;k>=j;k--)
{
arrTemp[k+1]=arr[k];
}
arrTemp[j]=num;
break;
}
}
}
return arrTemp;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[]= {1,3,5,6,8,9,12,14,20,22,30,40,80,165};
System.out.print("输入一个数:");
Scanner input=new Scanner(System.in);
int num=input.nextInt();
int arrLast[]=insert(num,arr);
System.out.print("排序前:");
for(int i=0;i<=arr.length-1;i++)
{
System.out.print(arr[i]+" ");
}
System.out.println();
System.out.print("排序后:");
for(int i=0;i<=arr.length;i++)
{
System.out.print(arrLast[i]+" ");
}
input.close();
}
}
JAVA经典50题(30)
最新推荐文章于 2023-07-23 15:30:34 发布
10万+

被折叠的 条评论
为什么被折叠?



