Pagini recente » Cod sursa (job #2524268) | Cod sursa (job #2397187) | Cod sursa (job #1357887) | Cod sursa (job #470865) | Cod sursa (job #2548452)
package com.company;
import java.io.*;
import java.util.Scanner;
public class Main {
public static void swap(int a, int b) {
int aux = a;
a = b;
b = aux;
}
public static int partition(int array[], int left, int right) {
int pivot = array[right], l = left;
for(int i = left; i < right; i++)
if(array[i] < pivot) {
System.out.println(i + " " + l);
int aux = array[i];
array[i] = array[l];
array[l] = aux;
l++;
}
int aux = array[right];
array[right] = array[l];
array[l] = aux;
return l;
}
public static void quickSort(int array[], int left, int right) {
if(left >= right)
return;
int mid = partition(array, left, right);
quickSort(array, left, mid - 1);
quickSort(array, mid + 1, right);
}
public static void merge(int array[], int left, int mid, int right) {
int a1[] = new int[100], a2[] = new int[100];
for(int i = 0; i < mid - left + 1; i++)
a1[i] = array[left + i];
for(int i = 0; i < right - mid; i++)
a2[i] = array[mid + i + 1];
int i = 0, j = 0, k = 0;
while(i < (mid - left + 1) && j < (right - mid)) {
if(a1[i] < a2[j]) {
array[k] = a1[i];
i++;
}
else {
array[k] = a2[j];
j++;
}
k++;
}
while(i < (mid - left + 1)) {
array[k] = a1[i];
i++;
k++;
}
while(j < (right - mid)) {
array[k] = a2[j];
j++;
k++;
}
/*for(i = 0; i < array.length; i++)
System.out.print(array[i] + " ");
System.out.println();*/
}
public static void mergeSort(int array[], int left, int right) {
if(left >= right)
return;
mergeSort(array, left, (left + right) / 2);
mergeSort(array, (left + right) / 2 + 1, right);
merge(array, left, (left + right) / 2, right);
}
public static void main(String[] args) throws IOException {
int array[] = new int[500000];
int n;
FileInputStream fileIn = new FileInputStream("algsort.in");
FileOutputStream fileOut = new FileOutputStream("algsort.out");
Scanner scanner = new Scanner(fileIn);
PrintWriter printer = new PrintWriter(fileOut);
n = scanner.nextInt();
for(int i = 0; i < n; i++)
array[i] = scanner.nextInt();
quickSort(array, 0, n - 1);
for(int i = 0; i < n; i++)
printer.print(array[i] + " ");
printer.close();
//for(int i = 0; i < n; i++)
//System.out.print(array[i] + " ");
}
}