ผลต่างระหว่างรุ่นของ "01204212/integer sorting"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) |
Jittat (คุย | มีส่วนร่วม) (→Code) |
||
แถว 87: | แถว 87: | ||
== Code == | == Code == | ||
+ | <syntaxhighlight lang="java"> | ||
+ | import java.io.BufferedReader; | ||
+ | import java.io.InputStreamReader; | ||
+ | import java.util.Iterator; | ||
+ | import java.util.LinkedList; | ||
+ | import java.util.ListIterator; | ||
+ | |||
+ | public class Main { | ||
+ | |||
+ | LinkedList<Integer> inList; | ||
+ | LinkedList<Integer> outList; | ||
+ | int n; | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | Main m = new Main(); | ||
+ | |||
+ | m.readInput(); | ||
+ | m.process(); | ||
+ | m.output(); | ||
+ | } | ||
+ | |||
+ | private void process() { | ||
+ | outList = new LinkedList<Integer>(); | ||
+ | |||
+ | sortList(inList, outList); | ||
+ | |||
+ | for(Iterator<Integer> i=outList.iterator(); i.hasNext();) { | ||
+ | System.out.println(i.next()); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | private void output() { | ||
+ | for(Iterator<Integer> i = outList.iterator(); i.hasNext();) { | ||
+ | System.out.println(i.next()); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | private void sortList(LinkedList<Integer> inList, LinkedList<Integer> outList) { | ||
+ | // ... put your code here | ||
+ | } | ||
+ | |||
+ | private void readInput() { | ||
+ | BufferedReader reader = new BufferedReader( | ||
+ | new InputStreamReader(System.in) ); | ||
+ | |||
+ | try { | ||
+ | n = Integer.parseInt(reader.readLine()); | ||
+ | inList = new LinkedList<Integer>(); | ||
+ | |||
+ | for(int i=0; i<n; i++) { | ||
+ | int x = Integer.parseInt(reader.readLine()); | ||
+ | inList.add(x); | ||
+ | } | ||
+ | } catch(Exception e) { | ||
+ | System.out.println("Input error"); | ||
+ | n = 0; | ||
+ | inList = null; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> |
รุ่นแก้ไขเมื่อ 04:00, 15 กันยายน 2559
- This is part of 01204212.
You are given N integers (whose values are between -1,000,000,000 to 1,000,000,000). You want to sort them ascendingly.
เนื้อหา
Input/Output
Input
- First line: an integer N (1<=N<=100,000)
- The next N lines: each line contains one integer
Output
Output N lines of N integers in sorted order from the smallest to the largest.
Example
Input
5 10 2 300 25 7
Output
2 7 10 25 300
Test data
Download them at: http://theory.cpe.ku.ac.th/~jittat/courses/01204212/tasks/sortint/
Correct answer for n10.in
22 172 189 245 266 332 399 597 858 984
Correct answer for n1000.in (first 10 lines):
38 58 213 220 298 320 440 462 526 576
Correct answer for n10000.in (first 10 lines) (notes: if you use recursion, you might not be able to run on this big input):
71 83 131 188 261 265 368 399 464 495
Code
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.ListIterator;
public class Main {
LinkedList<Integer> inList;
LinkedList<Integer> outList;
int n;
public static void main(String[] args) {
Main m = new Main();
m.readInput();
m.process();
m.output();
}
private void process() {
outList = new LinkedList<Integer>();
sortList(inList, outList);
for(Iterator<Integer> i=outList.iterator(); i.hasNext();) {
System.out.println(i.next());
}
}
private void output() {
for(Iterator<Integer> i = outList.iterator(); i.hasNext();) {
System.out.println(i.next());
}
}
private void sortList(LinkedList<Integer> inList, LinkedList<Integer> outList) {
// ... put your code here
}
private void readInput() {
BufferedReader reader = new BufferedReader(
new InputStreamReader(System.in) );
try {
n = Integer.parseInt(reader.readLine());
inList = new LinkedList<Integer>();
for(int i=0; i<n; i++) {
int x = Integer.parseInt(reader.readLine());
inList.add(x);
}
} catch(Exception e) {
System.out.println("Input error");
n = 0;
inList = null;
}
}
}