Algoritma'nın kodlar üzerinden analizi. #algoritma #algoritmaanalizi Instagram: hkn.cem Twitter: eightjune95
Пікірлер: 42
@didem382110 ай бұрын
Şu konuyu mantığıyla anlatan tek kişi sizsiniz , çok teşekkürler
@siberstar86576 ай бұрын
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 ❤
@hakancemgercek6 ай бұрын
Teşekkür ederim, umarım faydası olmuştur. Yakın zamanda yeni videolar çekmeyi planlıyorum, iyi çalışmalar :)
@ScienceScope7 Жыл бұрын
teşekkürler hocam çok yardımcı oldunuz
@sena_16168 ай бұрын
izlediğim en açık ve net anlatım teşekkürler
@hakancemgercek8 ай бұрын
Rica ederim, iyi çalışmalar
@Ayse-hc7ouАй бұрын
anlatımın gayet iyi yazılımla ilgili daha fazla video çekip yüklersen bence başarılı olacaktır. dersten sonra senin videonla konuyu daha iyi anladım sağ ol :)
@mutifam5612 ай бұрын
SÜPER ANLATIM TEBRİK EDERİM
@efc07349 ай бұрын
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 😊
@hakancemgercek9 ай бұрын
Ben teşekkür ederim, işinize yarıyorsa ne mutlu bana. İyi çalışmalar, başarılar
@engn56087 ай бұрын
temiz ve kaliteli bir anlatim olmus, tesekkurler.
@hakancemgercek7 ай бұрын
Rica ederim, iyi çalışmalar
@mustafabye3 ай бұрын
harika bir anlatim olmus...
@teknodayi69411 ай бұрын
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?
@onurozek67692 ай бұрын
İ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.
@hakancemgercek2 ай бұрын
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.
@onurozek67692 ай бұрын
@ 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.
@hakancemgercek2 ай бұрын
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-fftr3 ай бұрын
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
@hakancemgercek3 ай бұрын
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-fftr3 ай бұрын
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 ?
@hakancemgercek3 ай бұрын
@@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ç.
@finaldestruction66522 ай бұрын
n+1 + n +1 2n+2 değil mi
@elifcihat8 ай бұрын
tesekkurler
@hakancemgercek8 ай бұрын
Rica ederim, iyi çalışmalar
@isocnt3 ай бұрын
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
@hakancemgercek3 ай бұрын
Ö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.
@isocnt3 ай бұрын
@ teşekkür ederim hocam
@hakancemgercek3 ай бұрын
Rica ederim, iyi çalışmalar
@abcdef38936 ай бұрын
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
@hakancemgercek6 ай бұрын
Ş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-sv8hj8 ай бұрын
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ı )
@hakancemgercek8 ай бұрын
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-sv8hj8 ай бұрын
@@hakancemgercek Bu sefer tam olarak anladım çok teşekkür ederim.
@hakancemgercek8 ай бұрын
Rica ederim ^^
@dogukansume296710 ай бұрын
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
@hakancemgercek10 ай бұрын
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.
@Shadow35761Ай бұрын
for (i = 0; i < n; i++) { // Dış döngü for (j = 0; j < n; j++) { // İç döngü if (x < 6) { // Şart kontrolü c = a[i]; // Atama işlemi } ++x; // Artırma işlemi } } Hocam bundan ne gelir Fn
@hakancemgercekАй бұрын
T(n) = O(n²)
@yavbennebilim3 ай бұрын
hocam dakika 10dakş örnekte nasıl 2n+3 bulduk
@hakancemgercek3 ай бұрын
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