Pagini recente » Cod sursa (job #1060312) | Cod sursa (job #2554381) | Cod sursa (job #1271988) | Cod sursa (job #115210) | Cod sursa (job #3245744)
//package algsort;
import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
static final String INPUT_FILE = "algsort.in";
static final String OUTPUT_FILE = "algsort.out";
public static class TokenizedReader {
private final BufferedReader reader;
private StringTokenizer tokenizer;
TokenizedReader(String filePath) throws FileNotFoundException {
reader = new BufferedReader(new FileReader(filePath));
}
private String nextToken() {
while (tokenizer == null || !tokenizer.hasMoreTokens()) {
try {
tokenizer = new StringTokenizer(reader.readLine());
} catch (IOException e) {
throw new RuntimeException(e);
}
}
return tokenizer.nextToken();
}
private int nextInt() {
return Integer.parseInt(nextToken());
}
public void close() throws IOException {
reader.close();
}
}
public static void main(String[] args) throws IOException {
TokenizedReader reader = new TokenizedReader(INPUT_FILE);
PrintWriter writer = new PrintWriter(OUTPUT_FILE);
solve(reader, writer);
reader.close();
writer.flush();
writer.close();
}
public static void solve(TokenizedReader reader,
PrintWriter writer) {
int n = reader.nextInt();
int[] a = new int[n];
for (int i = 0; i < n; ++i) {
a[i] = reader.nextInt();
}
SortContext context = new SortContext();
context.setStrategy(new NativeSort());
context.sort(a);
for (int i = 0; i < n; ++i) {
writer.print(a[i] + " ");
}
writer.flush();
}
interface SortingStrategy {
void sort(int[] a);
}
static class NativeSort implements SortingStrategy {
@Override
public void sort(int[] a) {
Arrays.sort(a);
}
}
static class InsertionSort implements SortingStrategy {
@Override
public void sort(int[] a) {
int n = a.length;
for (int i = 1; i < n; ++i) {
int key = a[i];
int pos = i - 1;
while (pos >= 0 && a[pos] > key) {
// shift right
a[pos + 1] = a[pos];
--pos;
}
a[pos + 1] = key;
}
}
}
static class BubbleSort implements SortingStrategy {
@Override
public void sort(int[] a) {
int n = a.length;
boolean swapped;
for (int i = 0; i < n - 1; ++i) {
swapped = false;
for (int j = 0; j < n - i - 1; ++j) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
swapped = true;
}
}
if (!swapped) {
break;
}
}
}
}
static class SortContext {
private SortingStrategy strategy;
public void setStrategy(SortingStrategy strategy) {
this.strategy = strategy;
}
public void sort(int[] a) {
strategy.sort(a);
}
}
}