Şimdi Ara

C++ SIRALAMA ALGORİTMASI

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
7
Cevap
0
Favori
3.448
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Evet arkadaşlar başlıktada belirttiğim gibi sizlerden farklı sıralama algoritmaları istiyorum. Ben bir tane kod yazdım aşağıda vereceğim onu. Yazdığım algoritma dışında daha iyi daha kötü algoritmalar bekliyorum sizden. Birde C++ dilinde yazarsanız sevinirim. Yani printf gibi terimleri bilmiyorum onun yerine cout yani C++ terimleri kullanırsanız sevinirim. Şimdiden yardımlarınız için teşekkürler

    Yazdığım kod bu;

    #include <cstdlib>
    #include <iostream>
    #include <time.h>
    #include <ctime>
    #include <conio.h>
    #include <sys/time.h>
    using namespace std;

    int ekranaBastir(int dizi[],int dizininBoyutu){
    for(int i=0;i<dizininBoyutu;i++){
    cout<<dizi<<"-";
    }
    }

    int siralama(int dizi[],int dizininBoyutu){
    int enKucukSayi=0;
    int enKucukSayiIndexi =0;
    for(int i=0;i<dizininBoyutu-1;i++)
    {
    enKucukSayi = dizi;
    enKucukSayiIndexi=i;
    for(int j=i+1;j<dizininBoyutu;j++)
    {
    if(enKucukSayi>dizi[j]) // Eşitlik durumunda değiştirmeye gerek yok.
    {
    enKucukSayi = dizi[j];
    enKucukSayiIndexi = j;
    }
    }
    //Enkucuk sayi bulundu.
    if(i!=enKucukSayiIndexi)
    {
    // Dizi elemanları yer değiştiriliyor.
    int geciciSayi = dizi;
    dizi = enKucukSayi;
    dizi[enKucukSayiIndexi] = geciciSayi;
    }
    }

    //artık sıralandı
    ekranaBastir(dizi,dizininBoyutu);
    }

    int main(int argc, char** argv) {

    int x;
    cout<<"Kac tane sayi giricegini gir :";
    cin>>x;
    int dizi[x];
    for(int i=0;i<x;i++){
    cout<<(i+1)<<". sayiyi girin:";
    cin>>dizi;
    }

    siralama(dizi,x);

    return 0;
    }







  • 1 gün oldu cevap veren yok mu???
  • Ben seçerek sıralama ve kabarcık sıralama dışında kendim yazmadım. Zaten bunlar da en basitleri. Sıralamanın fazla bir esprisi yok, hazır qsort (quick sort) kullanıyorum. Genel sıralama algoritmaları içinde en hızlısı bu.

    Bunların dışında duruma göre özelleşmiş algoritmalar var. Mesela dizi tamamen dağınık değil de biraz düzenli olduğunda daha efektif işleyen metodları gibi.

    Ayrıca değişik türle veri yapıları üzerinde çalışan algoritmalar da var. Mesela yukarıda bahsettiğimiz bütün sıralama metodları sadece dizi üzerinde çalışabilir. Bağlı liste gibi rastgele erişim mümkün olmayan bir veri yapısında farklı yöntemler gerekir (merge sort, insertion sort vs.).
  • Dediğiniz quick sort'un kodlarını yazabilir misiniz zahmet olmazsa? Doğru sıralamanın pek bir espirisi yok ama başka yöntemler görmek için istiyorum.
  • Algoritmalar dilden bağımsız oldukları için c++ veya başka bir dil farketmez. Ayrıca bir algoritmayı gerçeklerken girdi/çıktı yapılmaz. Yani printf, cout, cin gibi şeyler kullanılmaz. Bu yüzden buraya kod koymanın anlamı yok. Onun yerine tekniğini öğren, istediğin dil ile kendin yaz. Zaten tekniği bilmeden koddan bişey anlaman mümkün değil.

    http://tr.wikipedia.org/wiki/H%C4%B1zl%C4%B1_s%C4%B1ralama
    http://www.bilgisayarkavramlari.com/2008/08/09/hizli-siralama-algoritmasi-quick-sort-algorithm/
    http://www.youtube.com/watch?v=y_G9BkAm6B8

    Gördüğün gibi hiçbirinde kod yok. Sadece algoritma var. Algoritmayı çözdükten sonra kodu istediğin dille istediğin gibi yaz.




  • Çok fazla sort algoritması var
    quick sort
    bubble sort
    insertion sort
    merge sort
    heap sort
    counting sort
    radix sort
    bucket sort

    daha da vardır heralde

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • çok teşekkürler
  • Yapay Zeka’dan İlgili Konular
    c++ örnekleri
    19 yıl önce açıldı
    C programlama
    5 yıl önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.