グループソート
1632 ワード
配列A、Bが指定されている場合は、プログラムを作成し、それらを統合して再配置します.
まず、私は問題を見て、ロケータから出てきたmergeSortを思い出しましたが、アルゴリズム自体が思い出せません...
以前ArrayListに何らかの方法で並べ替えられていたので、その部分で解いてみました.
正解ではないかもしれない出題者の意図はこれではない...
入力
1行目にA、Bのサイズ順に配列を入力
次の行には配列Aの内容が入力され、次の行には配列Bの内容が入力される
しゅつりょく
2つの配列を結合して出力します.
そしてArrayListにA、Bの順に入れます
Comparator.自然注文()→昇順
Comparator.reverseOrder()→降順
ソートの使用後
順次出力します.
まず、私は問題を見て、ロケータから出てきたmergeSortを思い出しましたが、アルゴリズム自体が思い出せません...
以前ArrayListに何らかの方法で並べ替えられていたので、その部分で解いてみました.
正解ではないかもしれない出題者の意図はこれではない...
入力
1行目にA、Bのサイズ順に配列を入力
次の行には配列Aの内容が入力され、次の行には配列Bの内容が入力される
しゅつりょく
2つの配列を結合して出力します.
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
String[] Size = input.split(" ");
int leng = Integer.valueOf(Size[0]) + Integer.valueOf(Size[1]);
ArrayList<Integer> arr = new ArrayList<Integer>(leng);
String input1= br.readLine();
String[] Size1= input1.split(" ");
for(int i = 0; i < Size1.length; i++){
arr.add(Integer.valueOf(Size1[i]));
}
String input2= br.readLine();
String[] Size2= input2.split(" ");
for(int i = 0; i < Size2.length; i++){
arr.add(Integer.valueOf(Size2[i]));
}
arr.sort(Comparator.naturalOrder());
for(int i = 0; i < arr.size(); i++){
System.out.print(arr.get(i)+" ");
}
}
}
まず2つの配列のサイズを求めてlengに保存し,ArrayListのサイズを生成する.そしてArrayListにA、Bの順に入れます
Comparator.自然注文()→昇順
Comparator.reverseOrder()→降順
ソートの使用後
順次出力します.
Reference
この問題について(グループソート), 我々は、より多くの情報をここで見つけました https://velog.io/@hack_ho/배열-합쳐서-정렬하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol