Şimdi Ara

C++ projesi fikir

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
3
Cevap
0
Favori
688
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Yapacagim projede bi text dosyasindan integerlari alip okuyup bunlari siralayip ,kullanicidan int k degeri alip en yuksek k tane elementi yazdiricam.
    Koyulan text dosyasi 1.2milyon element iceriyor.Bunlari arraye kopyalamak cok mu yavas olur?Binary tree kullansam olur mu ? Algoritma olarak quick sort kullanacagim.

    Hangi veri yapisini secersem icine atma ve siralama suresi en kisa olur?

    < Bu ileti mobil sürüm kullanılarak atıldı >



  • Normal dizi en hızlısı olur.
  • Öncelikle dosya içindeki değerler int gerektirmeyecek değerlerse int kullanmayın, örneğin değerlerin içinde 65535 sayısına yakın sayı yoksa int kullanmaya gerek yok, en büyük veya en küçük değer kaçsa ona göre bir değişken tipi kullanın, short işinizi görebilecekken int kullanıp hafızayı şişirmeyin 1.2 milyon element varmış.

    Binary tree kullanırsanız sıralama algoritması kullanmanıza gerek kalmaz, ilk okuduğunuz değer kök olur diğer değerler büyükler sağa küçükler sola(veya tam tersi) olmak üzere ağaca yerleştirilirler. Dikkat edersek en büyük değer ağacın en altında ve sağda olacak. En büyük değere ulaşmak için ağacın en altına iniyoruz, en büyük k değeri de bunun çevresinde olacak mantıken. Her seferinde en alta kadar inmek bizi yavaşlatır.

    Linked list kullanırsanız verileri sıralamanıza bile gerek kalmaz, her veriyi daha eklerken en uygun yere koyarsınız. Her veriyi önceki veriden büyük sonraki veriden küçük şartını sağladığı yere yerleştirirsiniz.
    7, 6, 12, 8 var elimizde diyelim.
    Önce 7 eklenir. 7
    Sonra 6<7 olduğu için 6 öne geçer. 6 -> 7 olur.
    12>6, 12>7 olduğu için en sona geçer. 6 -> 7 -> 12
    8>6 8>7 ancak 8<12 olduğundan daha ileri gitmez. 6 -> 7 -> 8 -> 12 olur.




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.