| |
| Subiectul anterior :: Subiectul urmator |
|
| Autor |
Mesaj |
|
GiovanY Founder


Data inscrierii: 05/Sep/2008 Mesaje: 1979
|
Trimis: 01/12/2008 15:59 Titlul subiectului: [java]Quick sort & Merge sort |
|
|
Quick sort este in medie, cel mai rapid algorim de sortare ( LE maine cu explicatii pentru incepatori. )
| Cod: |
import java.io.*;
import java.util.*;
public class QuickSort {
private static final String FileInputName = "QSort.in";
private static final String FileOutputName = "QSort.out";
private static void quickSort(int[] arr, int inf, int sup) {
if (inf < sup ) {
int pivot = arr[inf], aux;
int i = inf + 1, j = sup;
while ( i <= j ) {
while ( i <= sup && arr[i] <= pivot )
i++;
while ( j >= inf && arr[j] > pivot )
j--;
if ( i < j && i <= sup && j >= inf ) {
aux = arr[i];
arr[i] = arr[j];
arr[j] = aux;
i++;
j--;
}
}
i--;
arr[inf] = arr[i];
arr[i] = pivot;
quickSort(arr, inf, i - 1);
quickSort( arr, i + 1, sup);
}
}
public static void main(String[] args) throws IOException {
Scanner sc = null;
PrintStream out = null;
try {
out = new PrintStream(new File(FileOutputName));
sc = new Scanner(new File(FileInputName));
List<Integer> list = new ArrayList<Integer>();
while (sc.hasNextInt()) {
list.add(sc.nextInt());
}
int idx = list.size();
int arr[] = new int[idx];
for(int i = 0; i < idx; i++)
arr[i] = list.get(i);
quickSort(arr, 0, idx - 1);
for(int i = 0, i < idx; i++) {
out.print(arr[i]);
out.print(' ');
}
} finally {
if (sc != null ) {
sc.close();
}
if ( out != null ) {
out.close();
}
}
}
} |
Merge Sort ( Interclasare )
| Cod: |
import java.io.*;
import java.util.*;
public class MergeSort {
private static final String FileInputName = "MSort.in";
private static final String FileOutputName = "MSort.out";
private static void mergeSort(int arr[]) {
if (arr.length <= 1)
return;
int v1[] = new int[arr.length / 2];
int v2[] = new int[arr.length - v1.length];
System.arraycopy(arr, 0, v1, 0, arr.length/2);
System.arraycopy(arr, arr.length/2, v2, 0, arr.length - v1.length);
mergeSort(v1);
mergeSort(v2);
int i1 = 0, i2 = 0;
for (int k = 0; k < v1.length + v2.length;)
if ((i2>=v2.length) || (i1<v1.length && v1[i1] <= v2.[i2])) {
arr[k++] = v1[i1++];
}
else {
arr[k++] = v2[i2++];
}
}
public static void main(String[] args) throws IOException {
Scanner sc = null;
PrintStream out = null;
try {
out = new PrintStream(new File(FileOutputName));
sc = new Scanner(new File(FileIntputName));
List<Integer> list = new ArrayList<Integer>();
while (sc.hasNextInt()) {
list.add( sc.nextInt() );
}
int arr[] = new int[list.size()];
for(int i = 0; i < list.size(); i++)
arr[i] = list.get(i);
mergeSort(arr);
for(int i = 0; i < arr.length; i++) {
out.print(arr[i]);
out.print(' ');
}
} finally {
if ( sc != null ) {
sc.close();
} if (out != null) {
out.close();
}
}
}
} |
|
|
| Sus |
|
 |
|
|
Nu puteti crea un subiect nou in acest forum Nu puteti raspunde in subiectele acestui forum Nu puteti modifica mesajele proprii din acest forum Nu puteti sterge mesajele proprii din acest forum Nu puteti vota in chestionarele din acest forum
|
|
|
| |
|
Forum by kene | Powered by phpBB © 2001, 2002 phpBB Group
Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro
|
|
|