java解决: 有一个已经排好序的数组,现输入一个数,要求按原来的规律将它插入数组中。
答案:3 悬赏:10
解决时间 2021-03-23 07:50
- 提问者网友:暗中人
- 2021-03-22 09:37
java解决: 有一个已经排好序的数组,现输入一个数,要求按原来的规律将它插入数组中。
最佳答案
- 二级知识专家网友:鸠书
- 2021-03-22 10:28
#include
int main()
{
int book[1001],i,j,t,n;
for(i=0;i<=1000;i++)
book[i]=0;
scanf("%d",&n);//输入一个数n,表示接下来有n个数
for(i=1;i<=n;i++)//循环读入n个数,并进行桶排序
{
scanf("%d",&t); //把每一个数读到变量t中
book[t]++; //进行计数,对编号为t的桶放一个小旗子
}
for(i=1000;i>=0;i--) //依次判断编号1000~0的桶
for(j=1;j<=book[i];j++) //出现了几次就将桶的编号打印几次
printf("%d ",i);
getchar();getchar();
return 0;
}
比如你输入
10,说明有10个数。
3,2,1,4,5,6,7,8,9,10.
他会自动帮你从10到1排好
int main()
{
int book[1001],i,j,t,n;
for(i=0;i<=1000;i++)
book[i]=0;
scanf("%d",&n);//输入一个数n,表示接下来有n个数
for(i=1;i<=n;i++)//循环读入n个数,并进行桶排序
{
scanf("%d",&t); //把每一个数读到变量t中
book[t]++; //进行计数,对编号为t的桶放一个小旗子
}
for(i=1000;i>=0;i--) //依次判断编号1000~0的桶
for(j=1;j<=book[i];j++) //出现了几次就将桶的编号打印几次
printf("%d ",i);
getchar();getchar();
return 0;
}
比如你输入
10,说明有10个数。
3,2,1,4,5,6,7,8,9,10.
他会自动帮你从10到1排好
全部回答
- 1楼网友:神的生死簿
- 2021-03-22 11:10
import java.util.ArrayList;
import java.util.Arrays;
public class ArrayInsert {
Integer[] array = { 1, 2, 3, 5, 6, 7, 8, 9 };
Integer[] resultArray = new Integer[9];
public ArrayInsert() {
System.out.println("Before : " + new ArrayList<Integer>(Arrays.asList(array)));
int insert = 4;
int insertIndex = 0;
for (int i = 0; i < array.length; i++) {
if (array[i] <= insert && (i + 1) < array.length && array[i + 1] >= insert) {
insertIndex = i;
}
}
System.arraycopy(array, 0, resultArray, 0, insertIndex + 1);
resultArray[insertIndex + 1] = insert;
System.out.println("Insert " + insert + " at index " + (insertIndex + 1));
System.arraycopy(array, insertIndex + 1, resultArray, insertIndex + 2, (array.length - (insertIndex + 1)));
System.out.println("After : " + new ArrayList<Integer>(Arrays.asList(resultArray)));
}
public static void main(String[] args) {
new ArrayInsert();
}
}
追问:可以随机插入一个数,用键盘接收后,再重新排序吗?
- 2楼网友:持酒劝斜阳
- 2021-03-22 10:52
排序的方式多了,原来的规律是什么规律,只是简单的顺序或者逆序吗?
追问:按简单的升序排列
追答:
public class ss {
public static void main(String[] args){
int[] shu = {1,2,7,9};//原数组
int[] shu2 = new int[5];//输出数组
int a = 3;//要插入的数
for(int i =0; i< shu.length; i++){
if(shu[i] > a){
shu2[i] = a;
for(i = i + 1; i < shu2.length; i++ ){
shu2[i] = shu[i-1];
//System.out.println(shu2[i]);
}
}
else{
shu2[i] = shu[i];
}
}
//循环输出
for(int i = 0; i<5; i++){
System.out.println(shu2[i]);
}
}
}
//有什么问题吗?
追问:按简单的升序排列
追答:
public class ss {
public static void main(String[] args){
int[] shu = {1,2,7,9};//原数组
int[] shu2 = new int[5];//输出数组
int a = 3;//要插入的数
for(int i =0; i< shu.length; i++){
if(shu[i] > a){
shu2[i] = a;
for(i = i + 1; i < shu2.length; i++ ){
shu2[i] = shu[i-1];
//System.out.println(shu2[i]);
}
}
else{
shu2[i] = shu[i];
}
}
//循环输出
for(int i = 0; i<5; i++){
System.out.println(shu2[i]);
}
}
}
//有什么问题吗?
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯