java插入算法

import java.util.Scanner;
import java.util.Arrays;
public class Ca{
	public static void main(String[]args){
		Scanner input=new Scanner(System.in);
		int[] array=new int[]{1,5,3,9,6};//插入前的数组
		int[] arr=new int[array.length+1];//创建一个比array长度大一的数组
		Arrays.sort(array);//将array数组排序
		for(int i=1;i<arr.length;i++){//将array数组复制给arr数组
			arr[i]=array[i-1];//保留arr[0],将array复制给arr[1-5],此时arr={0,1,3,5,6,9}   
		}
		System.out.print("请输入一个数字:");
		int a=input.nextInt();//随机输入一个数字  
		arr[0]=a;//将a赋值给arr[0]
		int d=0;//创建一个整数,代表下标位置
		if(arr[0]<=arr[1]){
			d=0;//当arr[0]小于arr[1]时,位置不变,下表位置为0
		}else if(arr[0]>=arr[arr.length-1]){
			d=arr.length-1;//当arr[0]大于arr[arr.length-1]时,下标位置为arr.length-1
			int q=arr[0];//定义一个变量等于arr[0] 
			for(int i=0;i<arr.length-1;i++){ 
		 		arr[i]=arr[i+1];//变换位置往前移
			    	 if(i+1==arr.length-1){//当arr[i+1]=arr.length-1时,表示已经到达最后一位,再讲arr[0]复制给arr[i+1]
			    	  	arr[i+1]=q;
			     	 	break;
			     	}
		   }  
		  }else{
		   	for(int i=0;i<arr.length-1;i++){
		    	if(arr[0]<arr[arr.length-1]&&arr[0]>arr[i])//当arr[0]小于arr[arr.length-1]并且大于arr[0]时,用for循环查找出位置
		    		d=i;//位置为i;  
		   	}
		   	int q=arr[0];//定义一个变量等于arr[0] 
		   	for(int j=0;j<arr.length-1;j++){   
		     		arr[j]=arr[j+1];//变换位置,将arr[d]之前的数往前移
		    		if(j+1==d){//当arr[i+1]=d时,表示已经到达最后一位,再讲arr[0]复制给arr[i+1]
			      		arr[j+1]=q;
			      		break;
				}
		  	}
		  }
		for(int i=0;i<arr.length;i++){
		   	System.out.print(arr[i]+" ");
	 	 }
	  	System.out.print("\n下标为:"+d);
	  
	 }
}
	```

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值