#java#将一个数插入已经排序的数组
程序员文章站
2024-03-23 21:48:10
...
有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
程序分析:首先判断此数是否大于最后一个数,然后依次向中间数比较,若大于某一个数,则取代它的位置,并使它后面的元素的位置依次后移。然而数组长度固定,但可以通过创建长度足够的新数组存放原数组数值和插入的数来变通地解决问题。
public class p22{
public static void main(String[] args){
int a[] = new int[]{1,6,14,26,46,66,87};
int c[] = fun(a,50); //调用方法处理原数组并用c数组接收方法返回的数组
for(int e:c){ //遍历数组
System.out.print(e+" ");
}
}
static int[] fun(int b[],int p){//创建一个可返回数组的方法
int n = b.length,i,j;
int d[] = new int[n+1];
//完成插入和后排操作
for(i=n-1;i>=0;i--){
if(p<=b[i]){
d[i+1]=b[i];
}
if(p>b[i]){
d[i+1]=p;
for(;i>=0;i--){
d[i]=b[i];
}
break;
}
}
return d;
}
}
推荐阅读
-
#java#将一个数插入已经排序的数组
-
将新元素插入到已排序的数组中
-
统计一个数字在排序数组中出现的次数。
-
在给定的一维已排序(升序)数组中寻找插入一个元素的位置
-
给定一个数组, 求如果排序之后, 相邻两数的最大差值, 要求时 间复杂度O(N), 且要求不能用非基于比较的排序。
-
【算法】给定一个数组,求如果排序之后,相邻两数的最大差值,要求时间复杂度O(N),且要求不能用非基于比较的排序
-
数据结构二分法-给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。
-
给定一个数组,求如果排序之后,相邻两数的的最大差值(Java实现)
-
【左神算法】给定一个数组,求如果排序之后,相邻两数的最大差值,要求时间复杂度O(N),且要求不能用非基于比较的排序。
-
给定一个数组,求如果排序之后,相邻两数的最大差值,要求时 间复杂度O(N),且要求不能用非基于比较的排序