Pagini recente » Cod sursa (job #1966560) | Cod sursa (job #3284277) | Cod sursa (job #1742594) | Cod sursa (job #1898634) | Cod sursa (job #3245737)
//package algsort;
import java.io.*;
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 InsertionSort());
context.sort(a);
for (int i = 0; i < n; ++i) {
writer.print(a[i] + " ");
}
writer.flush();
}
interface SortingStrategy {
void sort(int[] a);
}
static class InsertionSort implements SortingStrategy {
@Override
public void sort(int[] a) {
for (int i = 1; i < a.length; ++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 SortContext {
private SortingStrategy strategy;
public void setStrategy(SortingStrategy strategy) {
this.strategy = strategy;
}
public void sort(int[] a) {
strategy.sort(a);
}
}
}