嗨,我是新的节目,目前停留在试图让程序按升序显示输出排列阵列,升序排列3
两个阵列,给出
array1={1,3,5,7} // odd numbers
array2={2,4,6,8} // even numbers
Output= 1,2,3,4,5,6,7,8
输出将按升序排列。如何在java中为此输出编写程序。
嗨,我是新的节目,目前停留在试图让程序按升序显示输出排列阵列,升序排列3
两个阵列,给出
array1={1,3,5,7} // odd numbers
array2={2,4,6,8} // even numbers
Output= 1,2,3,4,5,6,7,8
输出将按升序排列。如何在java中为此输出编写程序。
加入两个数组:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String args[]) {
Int a[] = { 1,2,3 };
Int b[] = { 4,5 };
List list = new ArrayList(Arrays.asList(a));
list.addAll(Arrays.asList(b));
Object[] c = list.toArray();
}
}
安排一个阵列上升:
for (int j = 0; j<array.length; j++) {
for (int k = 0; k < array.length; k++){
if (array[j] < array[k]) {
int buffer = array[j];
array[j] = array[k];
array[k] = buffer;
}
}
}
使用addAll
方法,并结合两个数组到ArrayList
排序使用Collections.sort
方法
如果你想结果在数组中可以使用toArray
方法从转换到array
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
class MainDemo {
public static void main(String[] args) {
Integer[] array1 = { 1, 3, 5, 7 };
Integer[] array2 = { 2, 4, 6, 8 };
List<Integer> mylist = new ArrayList<Integer>();
mylist.addAll(Arrays.asList(array1));
mylist.addAll(Arrays.asList(array2));
Collections.sort(mylist);
// Print the sorted list....
for (Integer x : mylist) {
System.out.println(x+" ");
}
// You can also convert back to array
Integer[] FinalArray = mylist.toArray(new Integer[mylist.size()]);
for (int i = 0; i < FinalArray.length; i++) {
System.out.println(i);
}
}
}
输出:
1 2 3 4 5 6 7 8
方法1-甲简单的解决方案是通过一个拷贝来创建尺寸(M + N)和一个的输出阵列中的所有阵列给它。最后,使用任何O(nLogn)排序算法对输出数组进行排序。这种方法需要O((m + n)Log(m + n))时间。方法2-你可以使用Mean Heap在O((m + n)* Log(m + n))时间中合并数组。以下是详细的算法。
其中m和n是给定的两个阵列的大小。
这是正确的答案,但我不认为它的水平对于手头的问题是明智的,因为OP说他们是编程新手。任何关于大O的提及都可能令人困惑,尽管它是准确的。 – ThePerson
您可以将两个数组合并成一个,然后使用Arrays.sort()
。
int array1={1,3,5,7};
int array2={2,4,6,8};
int array[]=new int[10]; //You can change the 10 to max
int len=array1.length+array2.length;
int j=0,k=0;
for(int i=0;i<len;i++)
{
if(j<4)
array[i]=array1[j++];
else array[i]=array2[k++];
}
Arrays.sort(array,0,len);
而不显示任何努力输出 = 1,2,3,4,5,6,7,8
提供要求一度被认为是[题外话](HTTP://计算器。 COM /帮助/切合主题)。它仍然[现在正在辩论](http://meta.stackexchange.com/questions/215596/are-code-questions-without-an-attempt-now-on-topic),许多人认为这是粗鲁的。 –
将这两个数组放入一个数据结构中并使用基本的排序算法。 –