Java Düğüm mantığı ve kullanımı

Algoritma soruları çözüp, yazdığın algoritmanın time ve space complexity'sine göre sıralaman oluyor. Ek olarak haftalık sıralamalar var, bi kaç soru oluyor ne kadar sürede tamamladığına göre sıralaman oluyor. Eğlenceli. İlk başlarda yazdığım algoritmaları genelde time complexity'i hesaba almadan yazıyordum, dolayısıyla yavaş çalışıyordu. Ek olarak kullandığın dilde çeşitli optimizasyonlar oluyor, onları da öğrendikten sonra yazmak daha da kolay oluyor.
 
Peki siz nasıl yazıyorsunuz bu kodları? Nasıl derken, örneğin ben önce zaman ve yer karmaşasını es geçip en kolay anlaşılacak şekilde kodu yazıp sonra düzenliyorum. Arama yapacaksam önce bubble ile yazıp aramışım mesela, onu binary'e dönüştürüyorum. Veya iterasyon ile yazdığım kodu yinelemeli daha hızlı yazabiliyorsam ona çeviririm. Fazladan kullandığım değişkenler var ise onları silerim falan. Sizlerin optimizasyon yöntemleri nasıl oluyor?
 
Mesela adamın biri bitwise XOR, AND ve bitwise complement tekniği ile bir dizideki verileri 0 ms. sıralayabiliyor ve en az tekrarlananı bile gösteriyordu.. Çok ilginçti. Ben yazdığımda 1000 ms .

Bu birazda farklı düşünmek. Herkeste böyle zeka olmaz. Doğuştan gelen özellik.
 
XOR ve AND ile maskeleme uygulamış sanırım. Bitwise complement dediği 1'leri 0'a 0'ları 1'e döndürmek. Ama bu yöntemi nasıl dizi sıralamaya eklemiş çözemedim şu an. Sayıları Binary'e çevirip oradan binary halindeki sayının en soldaki 1 sayısının sırasına göre sıralamış herhalde. Maskeleme ile önce 32 bitin en solundan başlayıp negatif sayıları ayırmış, onları complement ile pozitife döndürmüş, sonra maskeyi birer bire sağa kaydırarak büyükten küçüğe bakmış diye atıyorum şu an. Maske kodu ile sayının kodunu AND yaparsanız maskede belirtilen binary sayısını elde ederiz. XOR ile ne yapılır bilmiyorum. Zekice.
 
Ben hala sorguluyorum. Bu adamın derdi algoritma çözmek değil yani . Neyse kendimizi geliştirmeye devam.

Ortalama ms alsakta yeter. Sonuçta ürün çıkartmak önemli. Ürünü çıkartabiliyorsan, optimizasyona sonra geçebiliriz .
 
Hocam Google'ın bir yarışması var öyle kısa sürede en iyi algoritmayı yazmak. Onlar çok fena. İzlerken yoruldum. Adamın kod yazma hızı kadar normal Türkçe cümle yazamıyorum. Bir de C++ yazıyor ya.
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.

Ek olarak, ne kadar hızlı kod olması lazımsa o kadar makine diline inmek gerekiyor sanırım. İşte adam bitlere kadar inmiş o dizi sıralamada.
 
Bu çocuğu, çocukken izlemiştim ben he he . Şimdi abimizdir.

Bir dil, assemblye'e ne kadar yakın ise sonuç o kadar kısadır diye bir şey vardır ama Java'da bu durum öylemidir bilmem. 0 ms. sonucunu evet Java dilinde aldı .
 
Evet o da ayrı bir konu. C'de yazsa yazılır da Java'da 0 ms'e inmek hayli zor.
 
Evet o da ayrı bir konu. C'de yazsa yazılır da Java'da 0 ms'e inmek hayli zor.
Adam tek başına; Algoritma analizini, zaman karmaşıklığını (bigO falan) bitirdi, bellekte yer kaplama diye bir şey de yok .

Intel, Apple daha hızlı işlemciler üretiyor daha hızlı sonuçlar için ama adam olayı bitirdi. İşlemci hızı, parelel programlama falan yalan, bizi kandırıyorlar bunlar. Adam bitirdi bunları he he .
 
Bu arada "Bitwise Sort" olarak geçiyor sanırım yöntemin adı.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…