Java Sıralama Algoritmam

Başlatan codemaster, 13 Eylül 2015 - 16:22:23

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

codemaster

package javaapplication1;

public class JavaApplication1 {

    public static void main(String[] args) {
     
      int bos = 0;
     
        int sirala[] = new int[]{10,9,8,7,6,5,4,3,2,1};
       
        for(int i = 0;i<sirala.length;i++){
               
            for(int j = 0;j<sirala.length-1;j++){
               
                if(sirala[j]<sirala[j+1]){
                   
                   
                 
                }else{
               
                    bos = sirala[j];
                    sirala[j] = sirala[j+1];
                    sirala[j+1] = bos;
               
                }
               
            }
           
        }
       
        for(int i : sirala)
            System.out.print(i+" ");
           
}
    }

Buyrun arkadaşlar yorumlarınızı bekliyorum.Ayrıca küçük bir sorum olacak gördüğünüz gibi yukarıdaki if 'in içini boş bıraktım.Şimdi Pythonda pass diye bir kelime vardı bu şekilde boş iflere falan bırakabiliyorduk hiç bir şey yapmıyordu javada bunu nasıl yapabiliriz?

oasln

Gayet başarılı ilk örneğe nazaran :) If içerisini boş bırakmana gerek yok, bir sonraki elementin büyük olduğunu kontrol etmek yerine küçük olduğuna bakabilirsin:

                if (sirala[j]>sirala[j+1]) {
                    bos = sirala[j];
                    sirala[j] = sirala[j+1];
                    sirala[j+1] = bos;
                }
--

Amenofis

if'in içini boş bırakacağına koşulu tersine çevir ve else'i kaldır.

codemaster

Biliyorum :D:D ama ben diyorumki pythondaki pass kelimesinin javadaki karşılığı nedir.Onu öğrenmek istiyorum. çünkü return. yazınca direk döngüden çıkıyor.

alquirel


codemaster

Alıntı yapılan: alquirel - 14 Eylül 2015 - 15:48:59

continue


Aradığın anahtar kelime bu olsa gerek.

Burada daha fazla bilgi var : http://stackoverflow.com/questions/389741/what-is-the-continue-keyword-and-how-does-it-work-in-java
Sağolun continue sadece döngülerde kullanılabilir diye biliyordum öğrendiğim iyi oldu.

alquirel

Zaten yine döngüde kullanmış oluyorsun ki. Sadece şarta bağlamış oluyorsun.

codemaster

Alıntı yapılan: alquirel - 14 Eylül 2015 - 19:23:23
Zaten yine döngüde kullanmış oluyorsun ki. Sadece şarta bağlamış oluyorsun.
Ozaman sadece şu şekil bir yapıda çalışmazmı

if(true){
continue;
}else{
}

alquirel

Denemek lazım ama hata verir muhtemelen. Javayı bilmiyorum, belki javada özel başka işlevleri de olabilir bu kelimenin.

Amenofis

Pythonun resmi belgelerinde "pass" anahtar sözcüğü için şu ifade kullanılmış. "The pass statement does nothing. It can be used when a statement is required syntactically but the program requires no action..

Bu tanıma göre pass'ın javadaki karşılığı ";" oluyor, yani boş ifade.
if(koşul)
;

Reverser

Sometimes an empty statement is needed.  In Java it is a simple semicolon.  In Python it is pass.
yani, @Amenofis'in belirttiği gibi.
kaynak: [1] http://anh.cs.luc.edu/331/notes/JavaVsPython.html

XFCE ROCKS !
Powered by Thunar & XFWM4



natgho

Bubble sort dışındada algoritmalar mevcut, shell short, Merge sort vs. onları da denemeni ve öğrenmeni tavsiye ederim.
Hayır ben Windows Düşmanı Değilim,Bu Yüzden Linux Kullanmıyorum, Ben Sadece Benim Donanımımda At Koşturacaksa Bir Yazılım, her Adımını Bilme Sorumluluğunu Hisseden Bir Teknologtan Fazlası olmadığım İçin Linux Kullanıcısıyım.

sknrk

Aklıma gelmişken söyleyeyim ikinci döngünde uzunluk-i-1 yaparsan maliyet çok daha az olur :). Bunun sebebi ise her i döngüsünde zaten sondaki elemanı belirlemiş olman. 9. döngüde 10 defa gitmene gerek kalmaz.

Erdem

#13
Ekleyerek sıralama algoritmasına benziyor. Ekleyerek sıralama algoritması yaklaşık 1/4 N² karşılaştırma ve 1/4 N² yerdeğiştirme yapıyor. En kötü dürumda bu rakam yaklaşık 1/2 N²'ye kadar çıkabiliyor.

Ekleyerek sıralama en yavaş algoritmalardan bir tanesidir. Ondan hızlısı kabuk sıralamadır.

Çalışma şekli de şu şekilde:



Kodla ilgili olarak da sıralama bir sınıf olsa daha iyi olur. Ayrıca Java'nın Comparable arabirimini kullanırsan bu sıralayacağın nesneler örneğin bir dizindeki kütükler, metin dosyaları hatta bir tarih nesnesi olabilir.

https://github.com/erdemoncel/java/blob/master/Ekleyerek.java


ahmet_matematikci

#14
@codemaster unuttu burayı ...
Galiba sınavlara  yoğunlaştı...
break ve continue kavramlarından bahsetmiyorsun galiba...
♥ Kız tavlamak için kahraman olmak gerekmez. Doğru kadın zaten sizi kahraman yapar ;)