有一以排好序的数组(一维,从小到大),现插入一个元素,保持该数组仍然有序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有一以排好序的数组(一维,从小到大),现插入一个元素,保持该数组仍然有序相关的知识,希望对你有一定的参考价值。
恩!是C语言!
public static void main(String args[])int[] a = 1,2,3,4,5,6,8,9,10;
int b = 7;
int[] c =new int[a.length+1];
for(int j=0;j<a.length;j++)
c[j]=a[j];
//从后面开始,如果比倒数第二个数大,那就将新加入的数填在倒数第一的位置,否则倒数第二的数位置后移
for(int i =c.length;i>=0;i--)
if(b>c[i-2])
c[i-1]=b;
break;
else
c[i-1]=c[i-2];
for(int j = 0;j<c.length;j++)
System.out.print(c[j]);
参考技术A 什么语言,c吗?
你等等,编码ing
写好了:
#include<stdio.h>
#define LEN 10 /*用宏定义数组的最大长度*/
/*输出数组a*/
void pr(int a[])
int i;
for(i=0;i<LEN;i++)printf("%d,",*a++);
printf("\n");
/*插入一个元素*/
void insert(int a[],int b)
int i,j;/*定义两个用于for循环的变量*/
for(i=0;i<LEN-1;i++)/*遍历数组*/
if(b>=a[i]&&b<a[i+1])/*寻找到一个大于或等于插入元素并且下一个位置大于插入元素的数组下标*/
for(j=LEN-1;j>i;j--)a[j]=a[j-1];/*将插入点后的元素后移一个位置*/
a[i+1]=b;/*将插入元素插入*/
break;/*跳出遍历数组*/
/*入口主函数*/
void main()
int a[LEN]=5,6,9,10,22,23;/*定义一个数组并初始化一部分值*/
pr(a);/*显示数组*/
insert(a,12);/*按大小插入一个元数12*/
pr(a);/*显示插入后的数组*/
TC 2.0 调试结果:
5 6 9 10 22 23 0 0 0 0
5 6 9 10 12 22 23 0 0 0
感言:好久都没写了,生疏了,唉,不应该啊…
谢谢你给这个机会。。。本回答被提问者和网友采纳
有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
//有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
var arr = [1, 2, 3, 4, 5, 7, 9];
function insertScot (m)
{
if(m > arr[arr.length - 1])
//进行值m与最后一个数的对比。
{
arr.push(m);
//因为这是一个从小到大的数组,所以比最后一个大就可以在数组后加入数值
return arr;
//直接返回输出结果
}else
{
for(var i = 0; i < arr.length; i++)
{
if(m <= arr[i])
//进行传入的值m和arr数组里的每个值进行比较
{
arr.splice(i, 0, m);
//在第i个地方插入个数m
break;
//打断循环,不然会一直下去,造成死循环。
}
}
return arr;
}
}
console.log(insertScot(5));
</script>
</head>
<body>
</body>
</html>
效果图 ↓
以上是关于有一以排好序的数组(一维,从小到大),现插入一个元素,保持该数组仍然有序的主要内容,如果未能解决你的问题,请参考以下文章
有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中