Temel java Dersleri – Dizilerde Sıralama (Array Sort)

Temel java Dersleri – Dizilerde Sıralama (Array Sort)

Merhaba Arkadaşlar,
Mobilhanem.com sitemiz üzerinden anlattığımız/yayınladığımız Temel Java Dersleri serimize bu dersimizde Dizilerde Sıralama olayını anlatacağız. Java’da birden fazla sıralama yöntemi bulunmaktadır. Selection Sort, Buble Sort, Quick Sort,Merge Sort … liste bu şekilde uzayıp gitmektedir. Ben bunların bir çoğunu özellikle Collections’ları(Lists, Sets, Maps) anlattıktan sonra anlatacağım. Ancak dizilerde de gerekli olacağından bu dersimde Selection Sort’u (Seçmeli Sıralama) anlatmaya çalışacağım.

Selection Sort

Öncelikle Seçmeli Sıralama’nın mantığını anlatmaya çalışacağım, sonrasında ise bir örnekle devam edeceğim. Seçmeli sıralamada, sırası ile tüm elemanlar ele alınıp, dizinin sonuna kadar o elemandan küçük eleman olup olmadığı kontrol edilir ve en küçük eleman bulunup eldeki sayı ile değiştirilir.

 

Daha açık anlatmak gerekirse , listenin 1. elemanın değeri alınır ve dizinin sonuna kadar tüm elemanlar kontrol edilir en küçük eleman bulunur ve 1. sıradaki eleman ile yer değiştirilir. Artık en küçük eleman 1. sırada yer almaktadır. 1. sıradaki elemanı tekrardan kontrol etmek gerekmediği için 2.sıradaki elemana geçilir ve aynı işlem tekrarlanarak son elemana kadar gidilir.

Bununla ilgili anlamanızı kolaylaştıracak internetten bulduğum bir resim paylaşmak istiyorum.

 

 

 

Gördüğünüz gibi öncelikle 7 yi ele alarak 7 den küçük, en küçük eleman bulunmuş (1) ve yerleri değiştirilmiş. Sonrasında 4 ele alınarak ondan küçük en küçük eleman(2) ile yer değiştirilerek sıralamaya devam edilmiş.

 

 

 

Bir tanede video paylaşarak anlamanızı kolaylaştırmak istiyorum. Video’da dans ederek selection sort yapıyorlar. Ben çok eğlenceli buldum. Umarım sizinde anlamanıza fayda sağlar.

Eeee o kadar resim paylaştık, video koyduk ama hala java kodu yok meydanda diyenler için kendi oluşturmuş olduğum liste’yi nasıl selection sort ile listelediğimi de paylaşıyorum.

Kod üzerinde açıklama yapmaya çalıştım.

/**
* Created by tahakirca on 22/01/2017.
*/
public class SelectionSort {
public static void main(String args[]){
int[] liste = {1, 4, 99, 2, 5, -3, 6, 2,-49,52};//Dizi’mizi oluşturuyoruz

for (int i = 0; i < liste.length-1; i++) { //Dizimizin değerlerini sırası ile alıyoruz int sayi = liste[i]; //sıradaki değeri sayi değişkenine atıyoruz int temp = i; //sayi 'nin indeksini temp değerine atıyoruz for (int j = i+1; j < liste.length ; j++) { //dizimizde i' den sonraki elemanlara bakıyoruz if(liste[j]

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

/**

* Created by tahakirca on 22/01/2017.

*/

public class SelectionSort {

    public static void main(String args[]){

        int[] liste = {1, 4, 99, 2, 5, 3, 6, 2,49,52};//Dizi’mizi oluşturuyoruz

 

        for (int i = 0; i < liste.length1; i++) { //Dizimizin değerlerini sırası ile alıyoruz

 

            int sayi = liste[i]; //sıradaki değeri sayi değişkenine atıyoruz

            int temp = i; //sayi ‘nin indeksini temp değerine atıyoruz

 

            for (int j = i+1; j < liste.length ; j++) { //dizimizde i’ den sonraki elemanlara bakıyoruz

                if(liste[j]<sayi){ //sayi değişkeninden küçük sayı var mı

                    sayi = liste[j]; //varsa sayi değişkenimizide değiştiriyoruz

                    temp = j; //indeks değerinide değiştiriyoruz

                }

            }

 

            if(temp != i){ //temp değeri başlangıç değeri ile aynı değil ise , yani list[i]’nin değerinden küçük sayı varsa onları yer değiştiriyoruz

                liste[temp] = liste[i];

                liste[i] = sayi;

            }

 

        }

 

        for (int sayi:liste) {

            //Bu kısım sıralama ile ilgili değil sadece sıralamanın doğru calısıp calısmadıgını kontrol etmek için

            System.out.println(sayi);

 

        }

    }

}

 

 

Konsol Çıktısı:

 

49

3

1

2

2

4

5

6

52

99

Yukarıda hem resim ile , hem video ile , hemde java kod ve üzerinde ki açıklamalar ile Dizilerde Sıralama‘yı , selection sort ile yani seçmeli sıralama ile anlatmaya çalıştım. Yazının girişinde de bahsettiğim gibi birden fazla sort metotu vardır. İlerleyen derslerimizde onları tek tek anlatmaya çalışacağım. Çünkü Algoritma adına sorting yani sıralama işlemleri çok önemlidir.

Benim bu dersimde anlatmak istediklerim bu kadar. Bir sonraki dersimde Java’nın Array işlemlerini kolaylaştırmak için hazırladığı Arrays Class‘ından bahsedeceğim.

Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.

Tüm Temel Java Dersleri için tıklayınız.

 

60

Yorum Yap
0 Yorum yapan