Algoritma Üzerinden Çalışma Zamanı Hesaplamaları | Algoritma Analizi

แชร์
ฝัง
  • เผยแพร่เมื่อ 1 ธ.ค. 2024

ความคิดเห็น • 40

  • @didem3821
    @didem3821 8 หลายเดือนก่อน

    Şu konuyu mantığıyla anlatan tek kişi sizsiniz , çok teşekkürler

  • @siberstar8657
    @siberstar8657 4 หลายเดือนก่อน +1

    Harika!!! Lafı dolandırmadan en iyi şekilse anlatmışsınız çok teşekkür ederim! Sizin gibi anlatan olduda biz mi anlamadık. Lütfen videolarınız artsın ❤

    • @hakancemgercek
      @hakancemgercek  4 หลายเดือนก่อน

      Teşekkür ederim, umarım faydası olmuştur. Yakın zamanda yeni videolar çekmeyi planlıyorum, iyi çalışmalar :)

  • @efc0734
    @efc0734 6 หลายเดือนก่อน

    Bilgisayar mühendisliği Doktora öğrencisiyim. Ben bile şuana kadar bu kadar net anlamamıştım bu konuyu. Çok teşekkürler. Basit ama çok temiz ve güzel anlatım 😊

    • @hakancemgercek
      @hakancemgercek  6 หลายเดือนก่อน

      Ben teşekkür ederim, işinize yarıyorsa ne mutlu bana. İyi çalışmalar, başarılar

  • @quesenaa
    @quesenaa 5 หลายเดือนก่อน

    izlediğim en açık ve net anlatım teşekkürler

    • @hakancemgercek
      @hakancemgercek  5 หลายเดือนก่อน

      Rica ederim, iyi çalışmalar

  • @ScienceScope7
    @ScienceScope7 10 หลายเดือนก่อน

    teşekkürler hocam çok yardımcı oldunuz

  • @mutifam561
    @mutifam561 12 วันที่ผ่านมา

    SÜPER ANLATIM TEBRİK EDERİM

  • @engn5608
    @engn5608 5 หลายเดือนก่อน

    temiz ve kaliteli bir anlatim olmus, tesekkurler.

    • @hakancemgercek
      @hakancemgercek  5 หลายเดือนก่อน

      Rica ederim, iyi çalışmalar

  • @mustafabye
    @mustafabye หลายเดือนก่อน

    harika bir anlatim olmus...

  • @teknodayi694
    @teknodayi694 8 หลายเดือนก่อน

    Algoritmanın yazımı ile ayni zamanda ingilizce önemli anladığım kadarıyla ve çok güzel bunu linuxta kullanmak isterim umarım yararı olur beklediğim ve aradığım tarzda bir video script yazma ile ilgili bir video var mı acaba?

  • @onurozek6769
    @onurozek6769 13 วันที่ผ่านมา

    İf ve while bakalım demişsiniz sonda ama sadece while bakmışsınız. Video yarım mı kaldı acaba devamını bulamadım. Ama for harika anlatmışsınız maşallah.

    • @hakancemgercek
      @hakancemgercek  12 วันที่ผ่านมา

      if’in içinde başka bir döngü yoksa ve koşul sabit zamanda değerlendirilebiliyorsa, if’in çalışma zamanı her zaman O(1)’dir.
      if yapısı, bir döngüyle birlikte n kez çalıştırılıyorsa, elbette toplam çalışma zamanı O(n) olur. Ancak bu, if yapısının kendi başına değil, döngünün etkisiyle artan bir çalışma zamanıdır. if ile ilgili en fazla bu kadarını söyleyebiliriz zaten, iyi çalışmalar.

    • @onurozek6769
      @onurozek6769 10 วันที่ผ่านมา

      @ teşekkürler if de for içinde de olsa n den etkilenmiş if içinde şartı sağlıyorsa başka , sağlamıyorsa başka bir komutu çalıştıracak ya ! öyle ise çalışacak olan n değil de şarta bağlı olarak n den daha düşük olmayacak mı ne bilim n\2 gibi misal. bir de while ve for aynı etkiye sahip sanırım ben öyle anladım.

    • @hakancemgercek
      @hakancemgercek  10 วันที่ผ่านมา +1

      Tabi, şöyle ki;
      if kaç kez çalıştırılacağı döngüye bağlıdır (örneğin, n kez).
      Ancak, if koşulunun ne sıklıkla doğru veya yanlış olacağı, şarta bağlıdır. Bu nedenle toplam çalıştırma sayısı genellikle en fazla n olur, ama bu sayı koşula göre n/2, n/3 gibi bir değere düşebilir.
      For döngüsü, genelde sabit bir iterasyon sayısına sahiptir. While döngüsü, koşula bağlı olarak farklı sayıda iterasyon yapabilir.
      Sonuç: if için toplam çalışma, en kötü durumda döngünün iterasyon sayısı (örneğin, n) kadar olur, ama gerçek sıklık, koşulun sağlanma oranına göre azalabilir.

  • @Adream-fftr
    @Adream-fftr 27 วันที่ผ่านมา +1

    Hocam dk 27:11 de bu dongülerin kendi içinde big-o değeri doğru ama big-o = en kotu durum analizi oldugu icin zaman karmasiklginda ard arda olan dongulerden yavas calisan yani log(n) cevap olmaz mi cunku yanliş bilmiyorsam log(log(n)) karmasikligi log(n)e gore daha hizli calisiyor

    • @hakancemgercek
      @hakancemgercek  27 วันที่ผ่านมา

      Eğer bu algoritmada bir if döngüsü olsaydı ve program bu if koşullarından birine göre sonlansaydı dediğin sonuç kabul edilirdi lakin burada iki adet "for" döngüsü var. Yani her halukarda iki döngü de çalışmak zorundadır. Burada zaten "toplam" çalışma zamanını hesapladık ki onun sonucu da O(loglogn)'dir. Ancak eğer genel çalışma zamanını hesaplayacak olsaydık senin dedediğin gibi O(logn) olurdu çünkü baskın terim O(logn)'dir.

    • @Adream-fftr
      @Adream-fftr 26 วันที่ผ่านมา

      kusura bakmayin hocam cuma algoritma analizi dersinin sınavi var ondan tam oturtmak için soruyorum. O halde döngüler ard arda oldugu için T(n) toplam çalışma zamanı
      (log(n)(ilk for)+(log(log(n)(2. For)) olmaz mı bi de soruda T(n) sorulunca her zaman toplam diye mi anlamalıyız veya O(n) sorulunca da soruda belirtilmemiş ise hep en geç çalışanı yani baskın olanı mı almalıyız ?

    • @hakancemgercek
      @hakancemgercek  26 วันที่ผ่านมา

      ​​@@Adream-fftr Estağfurullah, sorun oldukça sor. Şöyle düşün O(loglogn), O(logn)'den çok daha yavaş büyür. Dolayısıyla sınavda bu tipte bir soru karşına çıkarsa O(logn) olarak seç.

  • @dogukansume2967
    @dogukansume2967 8 หลายเดือนก่อน

    merhaba dakika 16.40 daki soruda dış döngü ilk başta n+1 kere döndü iç ise n kere sonra iç döngü n*(n+1)/2 kere döndü sonuç olarak ilk başan gelen n*(n+1)/2*n den dolayı n3 olmazkı karmaşıklık size zahmet cevaplarsanız sevinirim

    • @hakancemgercek
      @hakancemgercek  8 หลายเดือนก่อน

      1. Dıştaki döngü n+1 kez dönmüyor.
      2. İçteki döngü de n kez dönmüyor.
      İçteki döngü hiç olmasaydı bile en dıştaki döngü n defa çalışacaktı. En son çalışmadan sonra bir kez de döngü şartı kontrolü yapıldığı için sadece for satırı n+1 kez çalışacaktır. Sanırım konuyu tam olarak oturtamamışsın. En baştan izlemeni tavsiye ediyorum.

  • @abcdef3893
    @abcdef3893 4 หลายเดือนก่อน

    Merhaba, 18:42'de i değişkeni n'ye kadar gitti ve n^2 bulundu. 22:52'de k nereden geldi? 2^k yerine 2^n olması gerekmez mi? Ya da k olarak yazılacaksa neden 18:42'de k yerine n kullanıldı? İki örnekte de i>=n olduğunda döngü sonlanıyor. Teşekkürler

    • @hakancemgercek
      @hakancemgercek  4 หลายเดือนก่อน

      Şimdi öncelikle 22:52'deki for döngüsünde, i'nin artış koşuluna dikkat etmeni istiyorum.
      i her seferinde 2'nin katları şeklinde artıyor. Dizi n boyutlu ama i'nin hangi 2. katında son duruma geleceğimi kesin olarak hesaplayamayacağım için k'yı kullanıyorum.
      Diyorum ki, 2^k'ya ulaşıldığında döngü sonlansın yani i>=n durumunu sağlasın. Yani 2^n değil, 2^k olması gerekir.
      i = 2^k ,
      2^k >=n ,
      k = logn.
      18:42'deki for döngüsünde i değişkeni, her seferinde 1'er 1'er artıyor. Yani 22:52'deki for döngüsünün aksine dizinin boyutu olan n'e kaç adımda ulaşacağımı hesaplayabilirim. Bu hesap da n(n+1)/2 olduğu için direkt, n^2 olarak bulunur. Burada, k'yı kullanmaya gerek yoktur çünkü hesaplayamadığımız, bilinmeyen bir durum yoktur.
      Umarım açıklayıcı olmuştur. Kafana takılan bir yer varsa yazabilirsin yine

  • @Someone-sv8hj
    @Someone-sv8hj 5 หลายเดือนก่อน

    Merhaba anlatımınız için teşekkürler. Aklıma bir şey takıldı 28:18'de for döngüsü logn kez çalışır fakat içerisindeki kod satırı n kez çalışması gerekmez mi ? yani içerdeki kod satırı için n.n olmalı diye düşündüm ( örneğin önceki bir for döngüsünde (n+1) kez çalışınca içerisindeki kod satırı n kez çalışmıştı )

    • @hakancemgercek
      @hakancemgercek  5 หลายเดือนก่อน +1

      21:30 'da tam olarak bu for döngüsünün aynısını var (sadece j yerine i var) ve orada da anlattığım gibi, bu örnekteki for döngüsünün ilerleyişi her seferinde i'nin 2 ile çarpılarak devam etmesinden dolayı son durum olan n'e logaritmik bir yaklaşım söz konusudur. Yani verdiğin örnekteki gibi n+1 kez çalışmasından farklıdır ( farkı, i = 2^k, k=logn olması). İstersen orayı tekrar incele, soruna çok daha rahat cevap bulabilirsin. Teşekkürler, iyi çalışmalar

    • @Someone-sv8hj
      @Someone-sv8hj 5 หลายเดือนก่อน +1

      @@hakancemgercek Bu sefer tam olarak anladım çok teşekkür ederim.

    • @hakancemgercek
      @hakancemgercek  5 หลายเดือนก่อน

      Rica ederim ^^

  • @isocnt
    @isocnt หลายเดือนก่อน

    16.40 dan önceki sorularda f(n) bulunurken döngülerin sonundaki şart kontrolünü f(n) e ekledik ama 16.40 daki soruda i 0 j 0x olduğu durumda j bir şart kontrolü yapıyor ama yine de f(n) bundan etkilenmedi aynı şekilde en dıştaki döngüde n kere dönüyor ancak n+1 tane şart kontrolü yapıyor ama şart kontrolü yüzünden olan +1 leri f(n) e katmadık diye anladım neden acaba

    • @hakancemgercek
      @hakancemgercek  หลายเดือนก่อน +1

      Öncelikle 16:40'taki örnekte i, n'e kadar giderken, j ise i'ye kadar gider. Her iki döngüde de her zamanki gibi zaten halihazırda son durum kontrolü yapılır ancak j her seferinde i'ye kadar gittiği için karışıklık olmasın diye örüntüyü yakaladık ve soruyu o şekilde çözdük.
      Örüntümüz ardışık sayıların toplam formülüdür. O formülden de çalışma zamanını hesapladık. f(n)'e takılma, o sadece bir formül. Mantığı kavramalısın. Buradaki mantık, algoritmanın çalışma koşullarının yerine getirilirken nasıl ilerlediğidir.

    • @isocnt
      @isocnt หลายเดือนก่อน

      @ teşekkür ederim hocam

    • @hakancemgercek
      @hakancemgercek  หลายเดือนก่อน

      Rica ederim, iyi çalışmalar

  • @yormakardesim6225
    @yormakardesim6225 22 วันที่ผ่านมา

    hocam dakika 10dakş örnekte nasıl 2n+3 bulduk

    • @hakancemgercek
      @hakancemgercek  22 วันที่ผ่านมา

      for döngüsünün koşul satırı ---> n+1 kez
      for döngüsünün içindeki ifade ---> n kez
      return S; ifadesi ---> 1 kez çalışır
      (Aslında S=0 ifadesi de sayılabilir ancak zaten sabit sayılar ve katsayılar ihmal edilir. 3 de olsa 4 de olsa 100 de olsa bir etkisi yoktur)
      Toplam : 2n+3 o da O(n)'dir

  • @truthseeker9988
    @truthseeker9988 2 ชั่วโมงที่ผ่านมา

    Algoritma diye birşey yok! Algoritma algo yani algı ile ritma yani ritmik yani hareket, ivmelemeden gelir. Türkçesi algıya ritmik bir ivmelendirme kazandıran hareket demektir. Bu şu demek; şimdi bir sürü koddan ibaret bir uygulama yazdınız ve herşey anlık oluştu. Yani ileriyi düşünerek kod yazmadınız. Yani ben bu kodu ileride bir yerinde değişiklik yaparsam kodumun kodu çöker mi acep 🤔 diye düşünmediniz. Bu işte Algoritmik düşünce oluyor Algoritma olmuyor. Algoritma yapmadığın zamanda ise refactoring yapmadan Clean Code yazmış oluyorsun. Algoritma yapmadın yani.

  • @finaldestruction6652
    @finaldestruction6652 19 วันที่ผ่านมา +1

    n+1 + n +1 2n+2 değil mi

  • @elifcihat
    @elifcihat 6 หลายเดือนก่อน

    tesekkurler

    • @hakancemgercek
      @hakancemgercek  6 หลายเดือนก่อน +1

      Rica ederim, iyi çalışmalar