JavaScript kullanarak 4 satırda Buble Sort algoritması

Codx

Katılımcı Üye
30 Tem 2017
309
1



Merhabalar, iyi forumlar herkese.


Bu konuyu açma sebebim, JavaScript'in bize sunduğu olanaklar ve ne kadar geliştiği hakkında bir kaç cümle de bile olsa bahsedebilmektir.


JavaScript ilk başlarda browser'lar üzerinde web sitelerinin dinamik olmasını sağlamak amaçlı EcmaScript adıyla piyasaya çıkmıştı. Şimdi browserlardan çıkıp masaüstü uygulamarından, yapay zeka algoritmalarına kadar uzanan kütüphaneleri ile, Github istatistiklerine göre ise dünyada en çok kullanılan diller arasında 1. sırada yer almaktadır. (%50'den yüksek bir orana sahip.)


Konumuza geçelim. Öncelikle şunu belirtmeliyim, ben JavaScript nedir?, nasıl yazılır? gibi konulara değinmeyeceğim. Benim göstermek istediğim şey bize sunduğu imkanlardan çok küçük bir kısmı. Yazılım dillerinde en önemli olan şey değişken, sabit, dizi tanımlamak yada nesne oluşturmak değil. Bunları algoritmalar üzerinde uygulayabilmektir.


A'dan Z'ye JavaScript adlı Green Team'den 'blackcoder'ın serisine buradan ulaşabilirsiniz.

Neden JavaScript? adlı konuya ise buradan ulaşabilirsiniz.

Ben konuya geçiyorum.


BUBLE SORT NEDİR?

Buble Sort Algoritması bir sıralama algoritmasıdır.


BUBLE SORT NASIL ÇALIŞIR?

Veri kümesi içerisindeki bütün elemanlari en baştan başlayarak bir sonraki değer ile karşılaştırır. Eğer karşılaştırılan değer karşılaştırılan değerden büyükse yerleri değiştirilir. Bu aşamadan sonra dizi/veri kümesi tekrar okunur ve verilerimiz küçükten büyüğe doğru sıralandığı zaman algoritma sonlanır.






BASİT DÜZEYDE KODLARIMIZI YAZALIM



Adım adım ilerleyelim. Öncelikle benim bir fonksiyon tanımlamam gerekiyor.





Bu fonksiyonum bir adet parametre aliyor. Bu parametre bir array olmalı. Şimdi ise benim bu array içerisinde dönmem gerekiyor. Bununla birlikte yine aynı şekilde her iki elaman arasında karşılaştırma yapabilmem için bunların arasında da dönmem gerekiyor. İç içe iki adet for döngüsüne ihtiyacım var.





For döngülerimiz hazır parametre olarak aldığımız dizinin içerisinde ve elemanlar arasında dönebilir artık. Şimdi gelelim kontrol ve yer değiştirme kısmına. Neydi şartımız, iki eleman arasında büyüklük kontrolu yapılacak ve eğer true ise yer değişecekti. Buna göre şart bloğumuzu yazalım.




Algoritmayı buraya kadar kurduk, şimdi ise değerlerin sırasını değiştirmeliyiz. Bunun için;



Şimdi ise test edelim.



Görüldüğü üzere ekrana düzgün bir sıra ile loglandı.

İŞLERİ BİRAZ DAHA KISALTALIM

Şimdi JavaScript'in bize sunduğu nimetlerden iki tanesinden bahsedeceğiz.



Kod:
// Buble Sort Algoritması
let data = [1,3,5,2,4,6,7]

const sortenedbubleSort = (arr) => {
    for (let i of arr)
        for (let x of arr) (arr[x] > arr[x + 1]) ? [arr[x], arr[x + 1]] = [arr[x + 1], arr[x]] : false;
    return arr
}
console.log(sortenedbubleSort(data));
Görüldüğü üzere JavaScript syntax'ı ile dikkat çekmektedir. Bunun ile birlikte browser'lardan çıkıp artık masaüstü uygulamalarından yapay zeka uygulamalarına kadar geniş bir yelpazeye sahip olması sebebiyle çok tercih edilen (Nesne Tabanlı) bir programlama dilidir.

Vakit ayırıp okuduğunuz için teşekkürler. İyi forumlar dilerim.


 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.