
2013-10-23
展开全部
#include <stdio.h>
void DisplayArray(int *pArray, int nLen)
{
for (int i = 0; i < nLen; ++i)
{
printf("array[%d] = %dn", i, pArray[i]);
}
}
// pArray1和pArray2是已经排好序的数组,要求将它们按照顺序合并到pArray中
// 排序之后的数组不会有重复的元素
void MergeArray(int *pArray1, int nLen1, int *pArray2, int nLen2, int *pArray)
{
int i, j, n;
i = j = n = 0;
while (i < nLen1 && j < nLen2) // 循环一直进行到拷贝完某一个数组的元素为止
{
if (pArray1[i] < pArray2[j]) // 拷贝array1的元素
{
pArray[n++] = pArray1[i++];
}
else if (pArray1[i] > pArray2[j]) // 拷贝array2的元素
{
pArray[n++] = pArray2[j++];
}
else // 相等的元素拷贝
{
pArray[n++] = pArray2[j++];
++i;
}
}
if (i == nLen1) // 如果array1已经被拷贝完毕就拷贝array2的元素
{
while (j < nLen2)
pArray[n++] = pArray2[j++];
}
else // 如果array2已经被拷贝完毕就拷贝array1的元素
{
while (i < nLen1)
pArray[n++] = pArray1[i++];
}
}
int main()
{
int array1[] = {1, 4, 5, 7};
int array2[] = {2, 3, 6, 8};
int array3[8];
MergeArray(array1, 4, array2, 4, array3);
printf("Merge Array:n");
DisplayArray(array3, 8);
return 1;
} 时间复杂度 O(n)
void DisplayArray(int *pArray, int nLen)
{
for (int i = 0; i < nLen; ++i)
{
printf("array[%d] = %dn", i, pArray[i]);
}
}
// pArray1和pArray2是已经排好序的数组,要求将它们按照顺序合并到pArray中
// 排序之后的数组不会有重复的元素
void MergeArray(int *pArray1, int nLen1, int *pArray2, int nLen2, int *pArray)
{
int i, j, n;
i = j = n = 0;
while (i < nLen1 && j < nLen2) // 循环一直进行到拷贝完某一个数组的元素为止
{
if (pArray1[i] < pArray2[j]) // 拷贝array1的元素
{
pArray[n++] = pArray1[i++];
}
else if (pArray1[i] > pArray2[j]) // 拷贝array2的元素
{
pArray[n++] = pArray2[j++];
}
else // 相等的元素拷贝
{
pArray[n++] = pArray2[j++];
++i;
}
}
if (i == nLen1) // 如果array1已经被拷贝完毕就拷贝array2的元素
{
while (j < nLen2)
pArray[n++] = pArray2[j++];
}
else // 如果array2已经被拷贝完毕就拷贝array1的元素
{
while (i < nLen1)
pArray[n++] = pArray1[i++];
}
}
int main()
{
int array1[] = {1, 4, 5, 7};
int array2[] = {2, 3, 6, 8};
int array3[8];
MergeArray(array1, 4, array2, 4, array3);
printf("Merge Array:n");
DisplayArray(array3, 8);
return 1;
} 时间复杂度 O(n)
2013-10-23
展开全部
public static int[] new_Array(int[] num_1,int[] num_2)
{
int sum = num_1.length+num_2.length;
int[] new_num = new int[sum];
int Memory_num = 0;
for(int i=0;i<num_1.length;i++)
{
new_num[i] = num_1[i];
Memory_num++;
}
for(int i=0;i<num_2.length;i++)
{
new_num[Memory_num] = num_2[i];
Memory_num++;
}
return new_num;
}
public static void main(String[] args) {
int[] s = {5,4,3,2,2,1};
int[] s1 = {50,40,30,20,20,10,12,13,14};
int[] si = new_Array(s,s1);
for(int i=0;i<si.length;i++)
{
System.out.println(si[i]);
}
}
{
int sum = num_1.length+num_2.length;
int[] new_num = new int[sum];
int Memory_num = 0;
for(int i=0;i<num_1.length;i++)
{
new_num[i] = num_1[i];
Memory_num++;
}
for(int i=0;i<num_2.length;i++)
{
new_num[Memory_num] = num_2[i];
Memory_num++;
}
return new_num;
}
public static void main(String[] args) {
int[] s = {5,4,3,2,2,1};
int[] s1 = {50,40,30,20,20,10,12,13,14};
int[] si = new_Array(s,s1);
for(int i=0;i<si.length;i++)
{
System.out.println(si[i]);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询