JAVA算法, 看看有什么做法;
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。int[]a=newint[]{1,2,6,14,25,36,37,55};...
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 int[] a = new int[]{1, 2,6, 14, 25, 36, 37,55};
展开
展开全部
二分插入排序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2016-03-14
展开全部
因为你用到了数组,所以每次插入的时候都需要重新分配空间,而且没法用二分法进行查找和插入。
其实还有两种更好的解决方案:
将所有数字都读完,然后进行排序
读数字前,先确定一共有多少个数字,然后分配充足的空间,这时就可通过二分法进行查找,但还是避免不了大量数据的移动。
int insert(int[]a, int num)
{
int[]temp = new int[a.length + 1];
int i = 0;
while(a[i] < num)
{
temp[i] = a[i];
++i;
}
temp[i] = num;
while(i < a.length)
{
temp[i + 1] = a[i];
++i;
}
a = temp;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询