Pagini recente » Cod sursa (job #2205924) | Cod sursa (job #3198758) | Cod sursa (job #3238568) | Cod sursa (job #3255877) | Cod sursa (job #2972196)
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class Main {
public static void mergeSort(int l, int r, int[] a){
if(l == r || l > r){
return;
}
else{
int mid = l + (r - l) / 2;
mergeSort(l, mid, a);
mergeSort(mid + 1, r, a);
int b[] = new int[r - l + 1];
int i1 = l, i2 = mid + 1, curr = -1;
while(i1 <= mid || i2 <= r){
if(i1 == mid + 1 || (i2 <= r && a[i2] <= a[i1])){
b[++curr] = a[i2++];
}
else{
b[++curr] = a[i1++];
}
}
for(int i=l;i<=r;i++){
a[i] = b[i - l];
}
}
}
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(new File("algsort.in"));
int n = sc.nextInt();
int[] a = new int[n];
for(int i=1;i<=n;i++){
a[i - 1] = sc.nextInt();
}
mergeSort(0, n - 1, a);
PrintWriter pr = new PrintWriter("algsort.out");
for(int i=1;i<=n;i++){
System.out.print(a[i - 1] + " ");
}
pr.flush();
}
}