1-) Java - SIRALAMALAR EN HIZLI EN YAVAŞ VS?
long selec, inser, bub, quick, merg;
int a;
public int[] selectionsort(int[] A, int n) {
int tmp;
int min;
for (int i = 0; i < n - 1; i++) {
min = i;
for (int j = i; j < n - 1; j++) {
if (A[j] < A[min]) {
min = j; } }
tmp = A[i];
A[i] = A[min];
A[min] = tmp; }
return A; }
public void bublesort(int[] x) {
int n = x.length;
int tut, j, gec;
for (gec = 0; gec < n - 1; gec++) {
for (j = 0; j < n - gec - 1; j++) {
if (x[j] > x[j + 1]) {
tut = x[j];
x[j] = x[j + 1];
x[j + 1] = tut; } } } }
void insertionSort(int[] arr) {
int i, j, Taşınan;
for (i = 1; i < arr.length; i++) {
Taşınan = arr[i];
j = i;
while (j > 0 && arr[j - 1] > Taşınan) {
arr[j] = arr[j - 1];
j--; }
arr[j] = Taşınan; } }
public void quickSort(int A[], int p, int r) {
int q;
if (p < r) {
q = partition(A, p, r);
quickSort(A, p, q - 1);
quickSort(A, q + 1, r); } }
public int partition(int A[], int p, int r) {
int tmp;
int x = A[r];
int i = p - 1;
for (int j = p; j <= r - 1; j++) {
if (A[j] <= x) {
i++;
tmp = A[i];
A[i] = A[j];
A[j] = tmp; } }
tmp = A[i + 1];
A[i + 1] = A[r];
A[r] = tmp;
return i + 1; }
public class merge {
private int[] list;
// siralancak listeyi alan inşa fonksiyonu
public merge(int[] listToSort) {
list = listToSort; }
merge() { }
// listeyi döndüren kapsülleme fonksiyonu
public int[] getList() {
return list; }
// dışarıdan çağırılan sıralama fonksiyonu
public void sort() {
list = sort(list); }
// Özyineli olarak çalışan ve her parça için kullanılan sıralama fonksiyonu
public int[] sort(int[] whole) {
if (whole.length == 1) {
return whole;
} else {
// diziyi ikiye bölüyoruz ve solu oluşturuyoruz
int[] left = new int[whole.length / 2];
System.arraycopy(whole, 0, left, 0, left.length);
int[] right = new int[whole.length - left.length];
System.arraycopy(whole, left.length, right, 0, right.length);
// her iki tarafı ayrı ayrı sıralıyoruz
left = sort(left);
right = sort(right);
// Sıralanmış dizileri birleştiriyoruz
merge(left, right, whole);
return whole; } }
public void merge(int[] left, int[] right, int[] result) {
int x = 0;
int y = 0;
int k = 0;
// iki dizide de eleman varken
while (x < left.length && y < right.length) {
if (left[x] < right[y]) {
result[k] = left[x];
x++;
} else {
result[k] = right[y];
y++; }
k++; }
int[] rest;
int restIndex;
if (x >= left.length) {
rest = right;
restIndex = y;
} else {
rest = left;
restIndex = x; }
for (int i = restIndex; i < rest.length; i++) {
result[k] = rest[i];
k++; } } }
public void sirala(int[] x) {
for (int i = 0; i < a; i++) {
System.out.println(x[i]); } }
public void sirala1(int[] y) {
for (int i = 0; i < 5; i++) {
if (y[i] == selec) {
jTextArea1.append("selection=" + y[i] + "<"); }
if (y[i] == inser) {
jTextArea1.append("insertion=" + y[i] + "<"); }
if (y[i] == bub) {
jTextArea1.append("bubble=" + y[i] + "<"); }
if (y[i] == quick) {
jTextArea1.append("quick=" + y[i] + "<"); }
if (y[i] == merg) {
jTextArea1.append("merge=" + y[i] + "<"); } } }
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
jTextArea1.setText("");
if (jRadioButton7.isSelected()) {
a = 10000; }
if (jRadioButton8.isSelected()) {
a = 20000; }
if (jRadioButton9.isSelected()) {
a = 30000; }
int[] dizi = new int[a];
for (int i = 0; i < a; i++) {
dizi[i] = (int) ((Math.random() * 100000) + 1); }
if (jRadioButton1.isSelected()) {
long startTime = System.currentTimeMillis();
selectionsort(dizi, a + 1);
sirala(dizi);
long endTime = System.currentTimeMillis();
long totalTime = endTime - startTime;
jTextArea1.append("SELECTİON SORTU=" + totalTime + " milisaniyede sıraladım.\n"); }
if (jRadioButton2.isSelected()) {
long startTime = System.currentTimeMillis();
insertionSort(dizi);
sirala(dizi);
long endTime = System.currentTimeMillis();
long totalTime = endTime - startTime;
jTextArea1.append("İNSERTİON SORTU=" + totalTime + " milisaniyede sıraladım."); }
if (jRadioButton3.isSelected()) {
long startTime = System.currentTimeMillis();
bublesort(dizi);
sirala(dizi);
long endTime = System.currentTimeMillis();
long totalTime = endTime - startTime;
jTextArea1.append("BUBBLE SORTU=" + totalTime + " milisaniyede sıraladım."); }
if (jRadioButton4.isSelected()) {
long startTime = System.currentTimeMillis();
quickSort(dizi, 1, a - 1);
sirala(dizi);
long endTime = System.currentTimeMillis();
long totalTime = endTime - startTime;
jTextArea1.append("QUİCK SORTU=" + totalTime + " milisaniyede sıraladım."); }
if (jRadioButton5.isSelected()) {
long startTime = System.currentTimeMillis();
merge mer = new merge();
mer.sort(dizi);
sirala(dizi);
long endTime = System.currentTimeMillis();
long totalTime = endTime - startTime;
jTextArea1.append("MERGE SORTU=" + totalTime + " milisaniyede sıraladım."); }
if (jRadioButton6.isSelected()) {
int[] dizi1 = new int[a];
for (int i = 0; i < a; i++) {
dizi1[i] = (int) ((Math.random() * 100000) + 1);
}
long startTime = System.currentTimeMillis();
selectionsort(dizi1, a + 1);
sirala(dizi1);
long endTime = System.currentTimeMillis();
long totalTime = endTime - startTime;
selec = totalTime;
//---------------------------------------------------------------------------------------------
int[] dizi2 = new int[a];
for (int i = 0; i < a; i++) {
dizi2[i] = (int) ((Math.random() * 100000) + 1); }
long startTime1 = System.currentTimeMillis();
insertionSort(dizi2);
sirala(dizi2);
long endTime1 = System.currentTimeMillis();
long totalTime1 = endTime1 - startTime1;
inser = totalTime1;
//---------------------------------------------------------------------------------------------
int[] dizi3 = new int[a];
for (int i = 0; i < a; i++) {
dizi3[i] = (int) ((Math.random() * 100000) + 1); }
long startTime2 = System.currentTimeMillis();
bublesort(dizi3);
sirala(dizi3);
long endTime2 = System.currentTimeMillis();
long totalTime2 = endTime2 - startTime2;
bub = totalTime2;
//-------------------------------------------------------------------------------------------
int[] dizi4 = new int[a];
for (int i = 0; i < a; i++) {
dizi4[i] = (int) ((Math.random() * 100000) + 1); }
long startTime3 = System.currentTimeMillis();
quickSort(dizi4, 1, a - 1);
sirala(dizi4);
long endTime3 = System.currentTimeMillis();
long totalTime3 = endTime3 - startTime3;
quick = totalTime3;
//---------------------------------------------------------------------------------------
int[] dizi5 = new int[a];
for (int i = 0; i < a; i++) {
dizi5[i] = (int) ((Math.random() * 100000) + 1); }
long startTime4 = System.currentTimeMillis();
merge mer = new merge();
mer.sort(dizi5);
sirala(dizi5);
long endTime4 = System.currentTimeMillis();
long totalTime4 = endTime4 - startTime4;
merg = totalTime4;
jTextArea1.append("SELECTİON SORTU=" + selec + " milisaniyede sıraladım.\n"
+ "İNSERTİON SORTU=" + inser + " milisaniyede sıraladım.\n"
+ "BUBBLE SORTU=" + bub + " milisaniyede sıraladım.\n"
+ "QUİCK SORTU=" + quick + " milisaniyede sıraladım.\n"
+ "MERGE SORTU=" + merg + " milisaniyede sıraladım.\n");
System.out.println("SELECTİON SORTU=" + selec + " milisaniyede sıraladım.");
System.out.println("İNSERTİON SORTU=" + inser + " milisaniyede sıraladım.");
System.out.println("BUBBLE SORTU=" + bub + " milisaniyede sıraladım.");
System.out.println("QUİCK SORTU=" + quick + " milisaniyede sıraladım.");
System.out.println("MERGE SORTU=" + merg + " milisaniyede sıraladım.");
int[] dizi6 = new int[5];
dizi6[0] = (int) (selec);
dizi6[1] = (int) inser;
dizi6[2] = (int) bub;
dizi6[3] = (int) quick;
dizi6[4] = (int) merg;
mer.sort(dizi6);
sirala1(dizi6); } }
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0); }