En hızlı sıralama

Başlatan baran123, 09 Ağustos 2017, 18:24:22

baran123

Bir STM MCU'da eleman sayısı 0 ile 1000 arasında değişen bir uint16 dizisini sıralayabilecek en hızlı algoritma hangisidir ?
Bubble, Insertion, Quick vs ?

E-x8

Sorunun cevabını bilmiyorum fakat böyle kararsız durumlarda kodun başına ve sonuna zamanlayıcı koyarak işlemi otomatik 1000 kez çalıştırırım ortalamasını alır sonucumu kaydederim size de bu yöntemi öneririm. Biraz uğraştırır fakat neyin yüzde kaç daha hızlı olduğunu en iyi bu yöntem söyler.

İyi çalışmalar.

muhittin_kaplan

baran sanki bu hepsinden hızlı gibi (tabi değişkenler girdiler önemli.)


şadi hoca yetişmiş.
https://www.youtube.com/watch?v=s4NSAWEbghs


mehmet

#3
C de kodlarını yazarsan zaman çıktısını her
sıralama için verebilirim.

Ek:
Python da olabilir.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

foseydon

Alıntı yapılan: baran123 - 09 Ağustos 2017, 18:24:22
Bir STM MCU'da eleman sayısı 0 ile 1000 arasında değişen bir uint16 dizisini sıralayabilecek en hızlı algoritma hangisidir ?
Bubble, Insertion, Quick vs ?

Yanlış hatırlamıyorsam quicksort PC için en hızlı sorting algoritması, milyonluk seviyeye kadar daha hızlı daha yüksek sayıda eleman için başka bir algoritma daha hızlı. Net hatırlamıyorum, ama kabaca böyle olması lazım.

Bursa birkaç nokta var. Birincisi bu algoritmalarin performansı sizin kullandığınız mimariye göre farklılık gösterecektir. bunun için en temizi birkaç algoritma yazıp deneyip karşılaştırmak olur. İkinci olarak, ben performans bütün algoritmaların çok çok yakın sonuç vereceğini düşünüyorum. Uygulamanız bilmiyorum, fakat bu fark gözardı edilebilecek seviyede olur diye düşünüyorum. Üçüncüsü, bütün algoritmaların işi bitirme süresi sizin gerekliliginizden az olabilir. En mantıklı çözüm, bir tane algoritmayı yazıp denemek ve performans yeterli değilse sonrakini denemek. Bu sayede zaman kaybetmemiş olursunuz. Son olarak, neden buna ihtiyaç duyduğuzu anlatırsanız, belki alternatif bir çözüm sunacak birisi çıkabilir.

baran123

ADC den örnekleme yaptıktan sonra bir takım yazılımsal filtreler ile uğraşacağım.
Henüz sıralama kısmını yazmadım fakat bu sıralamanın mümkün olduğunca hızlı olması gerekiyor.
"Mesela veri sayısı az olunca şu algoritma hızlıdır veri sayısı çok olunca şu algoritma hızlıdır." gibi bir ifade duyduğumu hatırlıyorum fakat emin değilim bu yüzden sordum.

foseydon

Alıntı yapılan: baran123 - 09 Ağustos 2017, 19:53:53
ADC den örnekleme yaptıktan sonra bir takım yazılımsal filtreler ile uğraşacağım.
Henüz sıralama kısmını yazmadım fakat bu sıralamanın mümkün olduğunca hızlı olması gerekiyor.
"Mesela veri sayısı az olunca şu algoritma hızlıdır veri sayısı çok olunca şu algoritma hızlıdır." gibi bir ifade duyduğumu hatırlıyorum fakat emin değilim bu yüzden sordum.

Sizin ADC ile elde ettiğiniz bu 1000 örnek, aslında bir sinyali temsil ediyor ve siz bu değerlerin sırasını değiştirdiğiniz zaman aslinda işlemek istediğiniz sinyalin formunu değiştirmiş olursunuz. Bu bana pek mantıklı gelmiyor. Bu sinyal ölçüm(akım, voltaj gibi) sinyali mi?

baran123

@foseydon amacım sadece teorik bir çalışma.
Merak ettiğim böyle verilerde en hızlı sıralamayı nasıl yapabilirim.
Sanırım cevap Quick Short.
Teşekkürler.


OptimusPrime

cevap hicbiri.

https://en.wikipedia.org/wiki/Sorting_algorithm

mergesort veya heapsort ile devam edebilirsin.
https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||