{"id":30360,"date":"2025-09-26T22:02:16","date_gmt":"2025-09-26T19:02:16","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/"},"modified":"2025-09-26T22:02:16","modified_gmt":"2025-09-26T19:02:16","slug":"kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/","title":{"rendered":"Kadane&#8217;s Algoritmas\u0131 ile Maksimum Alt Dizi Toplam\u0131 Nas\u0131l Bulunur?"},"content":{"rendered":"<p><body><\/p>\n<p>Kadane&#8217;s Algoritmas\u0131, bir dizi i\u00e7indeki maksimum toplam\u0131 veren s\u00fcrekli alt diziyi bulmak i\u00e7in kullan\u0131lan etkili bir dinamik programlama y\u00f6ntemidir. Bu makale, algoritman\u0131n mant\u0131\u011f\u0131n\u0131, ad\u0131m ad\u0131m uygulamas\u0131n\u0131, performans avantajlar\u0131n\u0131 ve ger\u00e7ek d\u00fcnya senaryolar\u0131ndaki kullan\u0131m\u0131n\u0131 detayl\u0131ca a\u00e7\u0131kl\u0131yor, b\u00f6ylece konuya tamamen yabanc\u0131 bir okuyucu bile algoritmaya hakim olabilecek.<\/p>\n<p>Bilgisayar bilimleri ve yaz\u0131l\u0131m m\u00fchendisli\u011fi alan\u0131nda s\u0131kl\u0131kla kar\u015f\u0131la\u015f\u0131lan temel problemlerden biri, bir tam say\u0131 dizisi i\u00e7erisinde &#8220;maksimum alt dizi toplam\u0131n\u0131&#8221; bulmakt\u0131r. Yani, verilen bir dizi i\u00e7inden, elemanlar\u0131 yan yana olan (s\u00fcrekli) bir alt dizinin elemanlar\u0131n\u0131n toplam\u0131n\u0131n en b\u00fcy\u00fck olaca\u011f\u0131 alt diziyi tespit etmektir. \u00d6rne\u011fin, <code>[-2, 1, -3, 4, -1, 2, 1, -5, 4]<\/code> dizisinde, <code>[4, -1, 2, 1]<\/code> alt dizisinin toplam\u0131 6&#8217;d\u0131r ve bu, dizideki t\u00fcm s\u00fcrekli alt diziler aras\u0131nda en b\u00fcy\u00fck toplam\u0131 temsil eder. Bu problem ilk bak\u0131\u015fta basit gibi g\u00f6r\u00fcnse de, \u00f6zellikle \u00e7ok b\u00fcy\u00fck dizilerle \u00e7al\u0131\u015f\u0131rken verimli bir \u00e7\u00f6z\u00fcm bulmak kritik \u00f6neme sahiptir.<\/p>\n<p>Peki, bu problem neden bu kadar \u00f6nemlidir? Finansal analizlerden g\u00f6r\u00fcnt\u00fc i\u015flemeye, biyoinformatikten veri madencili\u011fine kadar bir\u00e7ok farkl\u0131 alanda bu tip bir optimizasyon ihtiyac\u0131 do\u011fabilir. \u00d6rne\u011fin, borsa verileriyle \u00e7al\u0131\u015f\u0131rken, ge\u00e7mi\u015f fiyat de\u011fi\u015fimlerini temsil eden bir dizide en karl\u0131 al\u0131m-sat\u0131m d\u00f6nemini bulmak isteyebilirsiniz. Bu senaryoda, fiyat de\u011fi\u015fimlerinin pozitif veya negatif de\u011ferler ald\u0131\u011f\u0131 bir dizi d\u00fc\u015f\u00fcn\u00fcld\u00fc\u011f\u00fcnde, maksimum alt dizi toplam\u0131, en y\u00fcksek kar\u0131 sa\u011flayacak d\u00f6nemi i\u015faret edecektir. Bu nedenle, bu t\u00fcr problemler i\u00e7in h\u0131zl\u0131 ve etkili bir algoritmaya sahip olmak, pratik uygulamalar a\u00e7\u0131s\u0131ndan vazge\u00e7ilmezdir.<\/p>\n<p>\u0130lk akla gelen \u00e7\u00f6z\u00fcm genellikle &#8220;kaba kuvvet&#8221; (brute-force) y\u00f6ntemidir. Bu yakla\u015f\u0131mda, dizideki t\u00fcm olas\u0131 s\u00fcrekli alt dizilerin toplam\u0131 hesaplan\u0131r ve bu toplamlar aras\u0131ndan en b\u00fcy\u00fc\u011f\u00fc se\u00e7ilir. Ancak bu y\u00f6ntem, \u00f6zellikle dizinin boyutu artt\u0131k\u00e7a, kabul edilemez derecede yava\u015f hale gelir. Dizinin uzunlu\u011fu <code>n<\/code> oldu\u011funda, olas\u0131 alt dizilerin say\u0131s\u0131 <code>n * (n + 1) \/ 2<\/code> kadard\u0131r. Her bir alt dizinin toplam\u0131n\u0131 hesaplamak <code>O(n)<\/code> zaman alabilir, bu da toplamda <code>O(n^3)<\/code> gibi \u00e7ok y\u00fcksek bir zaman karma\u015f\u0131kl\u0131\u011f\u0131na yol a\u00e7ar. Daha iyi bir kaba kuvvet yakla\u015f\u0131m\u0131, her alt dizi toplam\u0131n\u0131 <code>O(1)<\/code> zamanda g\u00fcncellemek i\u00e7in \u00f6n toplamlar kullan\u0131larak <code>O(n^2)<\/code>&#8216;ye d\u00fc\u015f\u00fcr\u00fclebilir, ancak bu bile b\u00fcy\u00fck veri setleri i\u00e7in hala yetersizdir.<\/p>\n<p>\u0130\u015fte tam bu noktada Kadane&#8217;s Algoritmas\u0131 devreye girer. Geli\u015ftirilme amac\u0131 tam da bu zaman karma\u015f\u0131kl\u0131\u011f\u0131 sorununu \u00e7\u00f6zmek olan Kadane&#8217;s Algoritmas\u0131, dinamik programlama prensiplerini kullanarak problemi \u00e7ok daha verimli bir \u015fekilde, yani <code>O(n)<\/code> zaman karma\u015f\u0131kl\u0131\u011f\u0131yla \u00e7\u00f6zer. Bu, dizinin boyutu ne kadar artarsa arts\u0131n, algoritman\u0131n \u00e7al\u0131\u015fma s\u00fcresinin do\u011frusal olarak artaca\u011f\u0131 anlam\u0131na gelir ki bu, b\u00fcy\u00fck \u00f6l\u00e7ekli uygulamalar i\u00e7in devrim niteli\u011finde bir iyile\u015fmedir. Dinamik programlama, bir problemi daha k\u00fc\u00e7\u00fck, \u00f6rt\u00fc\u015fen alt problemlere b\u00f6lerek ve bu alt problemlerin \u00e7\u00f6z\u00fcmlerini depolayarak genel \u00e7\u00f6z\u00fcme ula\u015fma stratejisidir. Kadane&#8217;s de bu felsefenin en \u015f\u0131k \u00f6rneklerinden biridir.<\/p>\n<h2>Kadane&#8217;s Algoritmas\u0131n\u0131n Temel Dinamik Programlama Mant\u0131\u011f\u0131 Nas\u0131l \u0130\u015fler?<\/h2>\n<p>Kadane&#8217;s Algoritmas\u0131n\u0131n temel mant\u0131\u011f\u0131, her ad\u0131mda mevcut eleman\u0131 kullanarak maksimum alt dizi toplam\u0131n\u0131 nas\u0131l g\u00fcncelleyece\u011fimizi belirlemeye dayan\u0131r. Bu, iki ana de\u011fi\u015fkene odaklanarak yap\u0131l\u0131r: <code>current_max<\/code> (mevcut maksimum toplam) ve <code>global_max<\/code> (genel maksimum toplam). Algoritma, dizi boyunca soldan sa\u011fa do\u011fru ilerlerken bu iki de\u011feri s\u00fcrekli olarak g\u00fcnceller ve b\u00f6ylece t\u00fcm olas\u0131 alt dizileri tek bir ge\u00e7i\u015fte etkili bir \u015fekilde de\u011ferlendirir.<\/p>\n<p>Her bir eleman\u0131 (diyelim ki <code>num<\/code>) i\u015flerken, <code>current_max<\/code> i\u00e7in iki olas\u0131 durum vard\u0131r: ya bu eleman, kendisinden \u00f6nceki alt dizinin toplam\u0131n\u0131 bozup yeni bir alt dizi ba\u015flat\u0131r (yani <code>num<\/code> olur), ya da kendisinden \u00f6nceki alt diziye eklenerek toplam\u0131 art\u0131r\u0131r (yani <code>current_max + num<\/code> olur). Bu iki se\u00e7enekten hangisinin daha b\u00fcy\u00fck oldu\u011funu se\u00e7erek <code>current_max<\/code> de\u011ferini g\u00fcncelleriz. Matematiksel olarak ifade edersek: <code>current_max = max(num, current_max + num)<\/code>. Bu ad\u0131m, asl\u0131nda dinamik programlaman\u0131n temelini olu\u015fturur; o anki en iyi karar\u0131, \u00f6nceki en iyi karar\u0131n \u00fczerine in\u015fa ederek verir.<\/p>\n<p>Ayn\u0131 zamanda, her ad\u0131mda g\u00fcncellenen <code>current_max<\/code> de\u011ferini kullanarak <code>global_max<\/code> de\u011ferini de g\u00fcncelleriz. <code>global_max<\/code>, \u015fu ana kadar g\u00f6rd\u00fc\u011f\u00fcm\u00fcz t\u00fcm <code>current_max<\/code> de\u011ferleri aras\u0131ndaki en b\u00fcy\u00fck de\u011feri tutar. Yani, <code>global_max = max(global_max, current_max)<\/code> \u015feklinde bir g\u00fcncelleme yap\u0131l\u0131r. Bu sayede, dizi boyunca ilerlerken, en b\u00fcy\u00fck alt dizi toplam\u0131n\u0131 s\u00fcrekli olarak izlemi\u015f oluruz. Algoritma, dizinin sonuna ula\u015ft\u0131\u011f\u0131nda, <code>global_max<\/code> de\u011fi\u015fkeni, dizinin genelindeki maksimum alt dizi toplam\u0131n\u0131 i\u00e7erecektir.<\/p>\n<p>Ba\u015flang\u0131\u00e7ta, hem <code>current_max<\/code> hem de <code>global_max<\/code> de\u011fi\u015fkenlerini dizinin ilk eleman\u0131na e\u015fitleriz. E\u011fer dizi bo\u015fsa veya sadece s\u0131f\u0131rlarla doluysa, bu ba\u015flang\u0131\u00e7 de\u011feri \u00f6nem kazan\u0131r. Ancak \u00e7o\u011fu uygulamada, dizide en az bir eleman olaca\u011f\u0131 varsay\u0131l\u0131r. Bu yakla\u015f\u0131m, negatif say\u0131lar\u0131n varl\u0131\u011f\u0131yla da sorunsuz bir \u015fekilde ba\u015fa \u00e7\u0131kar. \u00d6rne\u011fin, <code>current_max<\/code> negatif bir de\u011fere d\u00fc\u015ferse ve mevcut eleman tek ba\u015f\u0131na daha b\u00fcy\u00fckse, <code>current_max<\/code> s\u0131f\u0131rlanm\u0131\u015f gibi olur ve yeni bir alt dizi ba\u015flar. Bu, negatif say\u0131lar\u0131n bir alt dizinin genel toplam\u0131n\u0131 d\u00fc\u015f\u00fcrmesini engeller.<\/p>\n<h3>Negatif Say\u0131lar\u0131n Rol\u00fc ve \u00c7\u00f6z\u00fcm Yakla\u015f\u0131m\u0131<\/h3>\n<p>Kadane&#8217;s Algoritmas\u0131nda negatif say\u0131lar, algoritman\u0131n dinamik do\u011fas\u0131n\u0131 en iyi g\u00f6steren unsurlardan biridir. Bir alt dizinin toplam\u0131 negatif oldu\u011funda ve bu negatif toplam, bir sonraki pozitif say\u0131yla birle\u015ftirildi\u011finde bile o pozitif say\u0131dan daha k\u00fc\u00e7\u00fck bir sonu\u00e7 veriyorsa, algoritma ak\u0131ll\u0131ca davran\u0131r ve \u00f6nceki negatif toplam\u0131 &#8220;b\u0131rak\u0131p&#8221; yeni bir alt dizi ba\u015flatmay\u0131 tercih eder. Bu, <code>current_max = max(num, current_max + num)<\/code> ifadesinde a\u00e7\u0131k\u00e7a g\u00f6r\u00fcl\u00fcr. E\u011fer <code>current_max + num<\/code> de\u011feri sadece <code>num<\/code> de\u011ferinden k\u00fc\u00e7\u00fckse, bu, mevcut alt diziyi devam ettirmenin toplam\u0131 k\u00fc\u00e7\u00fcltece\u011fi ve dolay\u0131s\u0131yla yeni bir ba\u015flang\u0131c\u0131n daha iyi olaca\u011f\u0131 anlam\u0131na gelir.<\/p>\n<p>\u00d6rne\u011fin, bir dizimiz <code>[ -2, -3, 4, -1, -2, 1, 5, -3 ]<\/code> olsun.<\/p>\n<ol>\n<li>Ba\u015flang\u0131\u00e7: <code>current_max = -2<\/code>, <code>global_max = -2<\/code><\/li>\n<li><code>-3<\/code> i\u00e7in: <code>current_max = max(-3, -2 + -3) = max(-3, -5) = -3<\/code>. <code>global_max = max(-2, -3) = -2<\/code>.<\/li>\n<li><code>4<\/code> i\u00e7in: <code>current_max = max(4, -3 + 4) = max(4, 1) = 4<\/code>. <code>global_max = max(-2, 4) = 4<\/code>. (Burada -3&#8217;\u00fc b\u0131rak\u0131p 4&#8217;ten yeni bir alt dizi ba\u015flatt\u0131k \u00e7\u00fcnk\u00fc 4, (-3+4)&#8217;ten daha b\u00fcy\u00fck)<\/li>\n<li><code>-1<\/code> i\u00e7in: <code>current_max = max(-1, 4 + -1) = max(-1, 3) = 3<\/code>. <code>global_max = max(4, 3) = 4<\/code>.<\/li>\n<li><code>-2<\/code> i\u00e7in: <code>current_max = max(-2, 3 + -2) = max(-2, 1) = 1<\/code>. <code>global_max = max(4, 1) = 4<\/code>.<\/li>\n<li><code>1<\/code> i\u00e7in: <code>current_max = max(1, 1 + 1) = max(1, 2) = 2<\/code>. <code>global_max = max(4, 2) = 4<\/code>.<\/li>\n<li><code>5<\/code> i\u00e7in: <code>current_max = max(5, 2 + 5) = max(5, 7) = 7<\/code>. <code>global_max = max(4, 7) = 7<\/code>.<\/li>\n<li><code>-3<\/code> i\u00e7in: <code>current_max = max(-3, 7 + -3) = max(-3, 4) = 4<\/code>. <code>global_max = max(7, 4) = 7<\/code>.<\/li>\n<\/ol>\n<p>Bu \u00f6rnekte g\u00f6r\u00fcld\u00fc\u011f\u00fc gibi, Kadane&#8217;s Algoritmas\u0131, ard\u0131\u015f\u0131k say\u0131lar\u0131n toplam\u0131n\u0131n aniden \u00e7ok k\u00fc\u00e7\u00fcld\u00fc\u011f\u00fc durumlarda, eski toplam\u0131 terk edip yeni bir alt dizi ba\u015flatarak en y\u00fcksek toplam\u0131 korumay\u0131 ba\u015far\u0131r. Bu, algoritman\u0131n negatif de\u011ferlerle bile do\u011fru \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayan ak\u0131ll\u0131ca bir dinamik programlama stratejisidir.<\/p>\n<h2>Kadane&#8217;s Algoritmas\u0131n\u0131 Uygulamak: Python ile Ad\u0131m Ad\u0131m Bir \u00d6rnek<\/h2>\n<p>\u015eimdi Kadane&#8217;s Algoritmas\u0131n\u0131 Python programlama diliyle ad\u0131m ad\u0131m nas\u0131l uygulayabilece\u011fimize bir g\u00f6z atal\u0131m. Bu b\u00f6l\u00fcm, algoritman\u0131n teorik yap\u0131s\u0131n\u0131 somut bir kod \u00f6rne\u011fi \u00fczerinden anlaman\u0131za yard\u0131mc\u0131 olacak ve algoritman\u0131n her bir a\u015famas\u0131nda de\u011fi\u015fkenlerin nas\u0131l davrand\u0131\u011f\u0131n\u0131 g\u00f6sterecektir. Python, anla\u015f\u0131l\u0131r s\u00f6zdizimi sayesinde bu algoritmay\u0131 \u00f6\u011frenmek ve uygulamak i\u00e7in harika bir se\u00e7enektir.<\/p>\n<p>Algoritman\u0131n temelinde yatan fikir, dizinin her bir eleman\u0131n\u0131 tek tek ziyaret etmek ve ziyaret etti\u011fimiz her eleman i\u00e7in iki \u00f6nemli de\u011feri g\u00fcncellemekten ibarettir:<\/p>\n<ul>\n<li><code>current_max<\/code>: Mevcut pozisyona kadar gelen, pozitif bir toplam olu\u015fturmaya devam eden alt dizinin maksimum toplam\u0131. E\u011fer bu toplam negatif olursa, yeni bir alt dizi ba\u015flatmak daha mant\u0131kl\u0131 olaca\u011f\u0131ndan, bu de\u011feri mevcut eleman\u0131n kendisine e\u015fitleriz.<\/li>\n<li><code>global_max<\/code>: \u015eu ana kadar g\u00f6rd\u00fc\u011f\u00fcm\u00fcz t\u00fcm <code>current_max<\/code> de\u011ferleri aras\u0131nda en b\u00fcy\u00fck olan\u0131d\u0131r. Bu de\u011fer, algoritman\u0131n sonunda cevab\u0131m\u0131z olacakt\u0131r.<\/li>\n<\/ul>\n<p>Varsayal\u0131m ki bir tam say\u0131 dizimiz var ve bunun i\u00e7erisindeki maksimum alt dizi toplam\u0131n\u0131 bulmak istiyoruz. \u0130\u015fte bu durumu ele alan bir Python fonksiyonu:<\/p>\n<pre><code class=\"language-python\">\ndef kadanes_algorithm(nums):\n    # E\u011fer dizi bo\u015fsa, \u00f6zel bir durum ele alabiliriz veya hata f\u0131rlatabiliriz.\n    # Bu \u00f6rnekte, bo\u015f bir dizi i\u00e7in 0 d\u00f6nd\u00fcr\u00fcyoruz.\n    if not nums:\n        return 0\n\n    # current_max, \u015fu anki konuma kadar olan maksimum alt dizi toplam\u0131n\u0131 tutar.\n    # global_max, t\u00fcm dizi boyunca bulunan genel maksimum alt dizi toplam\u0131n\u0131 tutar.\n    # Ba\u015flang\u0131\u00e7ta her ikisini de dizinin ilk eleman\u0131na e\u015fitliyoruz.\n    # Bu \u00f6nemlidir \u00e7\u00fcnk\u00fc t\u00fcm elemanlar negatif olsa bile, en b\u00fcy\u00fck negatif say\u0131y\u0131 d\u00f6nd\u00fcrmeliyiz.\n    current_max = nums[0]\n    global_max = nums[0]\n\n    # Dizinin ikinci eleman\u0131ndan ba\u015flayarak t\u00fcm elemanlar\u0131 gez.\n    for i in range(1, len(nums)):\n        num = nums[i]\n        # current_max'\u0131 g\u00fcncelle: Ya mevcut eleman tek ba\u015f\u0131na en iyidir\n        # ya da mevcut eleman\u0131 \u00f6nceki current_max'e eklemek daha iyidir.\n        current_max = max(num, current_max + num)\n        \n        # global_max'\u0131 g\u00fcncelle: E\u011fer current_max, global_max'ten b\u00fcy\u00fckse,\n        # global_max'\u0131 current_max'e e\u015fitle.\n        global_max = max(global_max, current_max)\n        \n        # Her ad\u0131mda de\u011fi\u015fkenlerin durumunu g\u00f6rmek i\u00e7in (iste\u011fe ba\u011fl\u0131)\n        # print(f\"Eleman: {num}, current_max: {current_max}, global_max: {global_max}\")\n\n    return global_max\n\n# \u00d6rnek Kullan\u0131m:\ndizi1 = [-2, 1, -3, 4, -1, 2, 1, -5, 4]\nprint(f\"Dizi 1: {dizi1}\")\nprint(f\"Maksimum Alt Dizi Toplam\u0131 (Dizi 1): {kadanes_algorithm(dizi1)}\") # \u00c7\u0131kt\u0131: 6\n\ndizi2 = [1]\nprint(f\"Dizi 2: {dizi2}\")\nprint(f\"Maksimum Alt Dizi Toplam\u0131 (Dizi 2): {kadanes_algorithm(dizi2)}\") # \u00c7\u0131kt\u0131: 1\n\ndizi3 = [5, 4, -1, 7, 8]\nprint(f\"Dizi 3: {dizi3}\")\nprint(f\"Maksimum Alt Dizi Toplam\u0131 (Dizi 3): {kadanes_algorithm(dizi3)}\") # \u00c7\u0131kt\u0131: 23\n\ndizi4 = [-2, -1]\nprint(f\"Dizi 4: {dizi4}\")\nprint(f\"Maksimum Alt Dizi Toplam\u0131 (Dizi 4): {kadanes_algorithm(dizi4)}\") # \u00c7\u0131kt\u0131: -1\n\n<\/pre>\n<p><\/code><\/p>\n<h3>Uygulama \u00d6rne\u011fi: Negatif ve Pozitif Say\u0131lar\u0131n Kar\u0131\u015f\u0131m\u0131<\/h3>\n<p>Yukar\u0131daki kod blo\u011fu, farkl\u0131 senaryolar\u0131 kapsayan d\u00f6rt \u00f6rnekle Kadane's algoritmas\u0131n\u0131n nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6stermektedir. \u00d6zellikle <code>dizi1<\/code> \u00f6rne\u011fi, algoritman\u0131n negatif say\u0131larla nas\u0131l ba\u015fa \u00e7\u0131kt\u0131\u011f\u0131n\u0131 ve do\u011fru maksimum alt diziyi <code>[4, -1, 2, 1]<\/code> (toplam 6) olarak nas\u0131l buldu\u011funu net bir \u015fekilde ortaya koyar. <code>dizi4<\/code> ise, t\u00fcm elemanlar\u0131n negatif oldu\u011fu bir durumda bile, algoritman\u0131n do\u011fru bir \u015fekilde en b\u00fcy\u00fck negatif say\u0131y\u0131 (bu durumda -1) d\u00f6nd\u00fcrd\u00fc\u011f\u00fcn\u00fc g\u00f6sterir. Bu, algoritman\u0131n sa\u011flaml\u0131\u011f\u0131n\u0131 ve her t\u00fcrl\u00fc girdi i\u00e7in ge\u00e7erli bir sonu\u00e7 \u00fcretebildi\u011fini kan\u0131tlar.<\/p>\n<p>Algoritma, her eleman i\u00e7in sadece birka\u00e7 basit aritmetik i\u015flem ve kar\u015f\u0131la\u015ft\u0131rma yapar. Bu i\u015flemlerin sabit bir zamanda (<code>O(1)<\/code>) tamamlanmas\u0131 ve diziyi yaln\u0131zca bir kez taramas\u0131 (<code>O(n)<\/code>) sayesinde, Kadane's algoritmas\u0131 <code>O(n)<\/code> gibi m\u00fckemmel bir zaman karma\u015f\u0131kl\u0131\u011f\u0131na sahiptir. Ayr\u0131ca, ek depolama alan\u0131 olarak sadece birka\u00e7 de\u011fi\u015fken kulland\u0131\u011f\u0131 i\u00e7in <code>O(1)<\/code> sabit bir alan karma\u015f\u0131kl\u0131\u011f\u0131na sahiptir. Bu etkileyici verimlilik, onu b\u00fcy\u00fck veri setleri ve performans\u0131n kritik oldu\u011fu uygulamalar i\u00e7in ideal bir \u00e7\u00f6z\u00fcm haline getirir.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryolar\u0131nda Kadane's Algoritmas\u0131 Nas\u0131l De\u011ferlendirilir?<\/h2>\n<p>Kadane's Algoritmas\u0131, yaln\u0131zca teorik bir problem \u00e7\u00f6zme arac\u0131 olmaktan \u00f6te, pek \u00e7ok ger\u00e7ek d\u00fcnya senaryosunda kritik faydalar sunan pratik bir ara\u00e7t\u0131r. Dinamik programlama yakla\u015f\u0131m\u0131n\u0131n en zarif \u00f6rneklerinden biri olan bu algoritma, \u00f6zellikle en iyi performans\u0131, en karl\u0131 d\u00f6nemi veya en yo\u011fun b\u00f6lgeyi bulma gibi optimizasyon problemlerinde kendini g\u00f6sterir. \u0130\u015fte Kadane's Algoritmas\u0131n\u0131n uygulanabilece\u011fi baz\u0131 dikkat \u00e7ekici alanlar:<\/p>\n<h3>Finansal Piyasalarda En Karl\u0131 D\u00f6nemi Bulma<\/h3>\n<p>Finans, Kadane's Algoritmas\u0131 i\u00e7in belki de en bilinen uygulama alanlar\u0131ndan biridir. Borsa analizlerinde yat\u0131r\u0131mc\u0131lar, belirli bir hisse senedinin ge\u00e7mi\u015f fiyat hareketlerini inceleyerek en karl\u0131 al\u0131m ve sat\u0131m d\u00f6nemlerini belirlemek isterler. Diyelim ki, bir hisse senedinin g\u00fcnl\u00fck fiyat de\u011fi\u015fimlerini i\u00e7eren bir dizimiz var (\u00f6rne\u011fin, <code>[d\u00fcn - bug\u00fcnk\u00fc fiyat]<\/code>). Bu dizideki pozitif de\u011ferler kar\u0131, negatif de\u011ferler ise zarar\u0131 temsil eder. Kadane's Algoritmas\u0131, bu fiyat de\u011fi\u015fimleri dizisi \u00fczerindeki maksimum alt dizi toplam\u0131n\u0131 bularak, yat\u0131r\u0131mc\u0131n\u0131n en y\u00fcksek kar\u0131 elde edece\u011fi s\u00fcrekli al\u0131m-sat\u0131m d\u00f6nemini tespit etmesine yard\u0131mc\u0131 olabilir. Bu, finansal verilerdeki gizli trendleri ve optimizasyon f\u0131rsatlar\u0131n\u0131 ortaya \u00e7\u0131karmak i\u00e7in g\u00fc\u00e7l\u00fc bir y\u00f6ntemdir.<\/p>\n<p>\u00d6rnek olarak, bir hisse senedinin g\u00fcnl\u00fck getirileri <code>[ -2, 3, -1, 4, -3, 2 ]<\/code> \u015feklinde bir diziyle temsil edilebilir. Bu durumda Kadane's Algoritmas\u0131 <code>[3, -1, 4]<\/code> alt dizisini (toplam 6) bulacakt\u0131r, bu da bu hisse senedinde en y\u00fcksek kar\u0131 getiren d\u00f6nemi i\u015faret eder. Bu t\u00fcr analizler, algoritmik ticaret stratejileri geli\u015ftirmede veya yat\u0131r\u0131m portf\u00f6y\u00fcn\u00fc optimize etmede kullan\u0131labilir.<\/p>\n<h3>G\u00f6r\u00fcnt\u00fc \u0130\u015flemede En Parlak B\u00f6lgeyi Tespit Etme<\/h3>\n<p>G\u00f6r\u00fcnt\u00fc i\u015fleme alan\u0131nda, Kadane's Algoritmas\u0131 do\u011frudan veya dolayl\u0131 olarak kullan\u0131labilir. \u00d6zellikle 2 boyutlu (2D) bir matris \u00fczerinde \"maksimum toplam alt matrisi\" bulma probleminde Kadane's Algoritmas\u0131n\u0131n bir uzant\u0131s\u0131 kullan\u0131l\u0131r. Bu problem, bir g\u00f6r\u00fcnt\u00fcdeki en parlak veya en yo\u011fun b\u00f6lgeyi (piksel de\u011ferleri a\u00e7\u0131s\u0131ndan) bulmak i\u00e7in kullan\u0131labilir. G\u00f6r\u00fcnt\u00fcy\u00fc sat\u0131r sat\u0131r veya s\u00fctun s\u00fctun i\u015fleyerek, her bir sat\u0131r\/s\u00fctun grubunun toplam\u0131n\u0131 tek boyutlu bir diziye d\u00f6n\u00fc\u015ft\u00fcr\u00fcp daha sonra bu dizi \u00fczerinde Kadane's Algoritmas\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmak m\u00fcmk\u00fcnd\u00fcr. Bu sayede, t\u0131bbi g\u00f6r\u00fcnt\u00fclerde anormallikleri tespit etmekten, uydu g\u00f6r\u00fcnt\u00fclerinde belirli \u00f6zellikleri vurgulamaya kadar geni\u015f bir uygulama yelpazesi sunar. \u00d6rne\u011fin, x-\u0131\u015f\u0131n\u0131 g\u00f6r\u00fcnt\u00fclerinde kemik yo\u011funlu\u011funun en y\u00fcksek oldu\u011fu b\u00f6lgeyi bulmak veya bir uydu foto\u011fraf\u0131nda belirli bir arazi t\u00fcr\u00fcn\u00fcn en yo\u011fun oldu\u011fu alan\u0131 belirlemek bu y\u00f6ntemle m\u00fcmk\u00fcn olabilir.<\/p>\n<h3>Biyoinformatikte Genetik Dizi Analizi<\/h3>\n<p>Biyoinformatik, genetik diziler ve protein yap\u0131lar\u0131 gibi biyolojik verilerin analizini i\u00e7eren bir aland\u0131r. Kadane's Algoritmas\u0131, bu alanda da de\u011ferli uygulamalara sahiptir. \u00d6rne\u011fin, bir DNA dizisindeki veya protein zincirindeki belirli bir b\u00f6lgenin \"fonksiyonel \u00f6nemini\" belirlemek i\u00e7in kullan\u0131labilir. Her bir n\u00fckleotid veya amino asit belirli bir skorla ili\u015fkilendirildi\u011finde (bu skorlar pozitif veya negatif olabilir), Kadane's Algoritmas\u0131, en y\u00fcksek toplam skoruna sahip s\u00fcrekli b\u00f6lgeyi bulabilir. Bu, gen ekspresyonu d\u00fczenlemesi, protein-protein etkile\u015fimleri veya hastal\u0131kla ili\u015fkili gen b\u00f6lgelerinin tan\u0131mlanmas\u0131 gibi ara\u015ft\u0131rmalarda \u00f6nemli ipu\u00e7lar\u0131 sa\u011flayabilir. \u00d6zellikle, genetik dizilerdeki anormallikleri veya \u00f6zel motifleri tespit etmek i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7 olarak \u00f6ne \u00e7\u0131kar.<\/p>\n<p>Bu senaryolar, Kadane's Algoritmas\u0131n\u0131n sadece bir teorik algoritma olmad\u0131\u011f\u0131n\u0131, aksine farkl\u0131 disiplinlerde pratik ve etkili \u00e7\u00f6z\u00fcmler sunan g\u00fc\u00e7l\u00fc bir ara\u00e7 oldu\u011funu a\u00e7\u0131k\u00e7a g\u00f6stermektedir. Verimlili\u011fi ve basitli\u011fi sayesinde, geli\u015ftiricilerin ve ara\u015ft\u0131rmac\u0131lar\u0131n karma\u015f\u0131k optimizasyon problemlerini \u00e7\u00f6zmelerine yard\u0131mc\u0131 olur.<\/p>\n<div class=\"expert-tip\">\n    Uzman \u0130pucu: Kadane's Algoritmas\u0131'n\u0131 uygularken, ba\u015flang\u0131\u00e7 de\u011ferlerini dizideki ilk eleman olarak atamak, t\u00fcm elemanlar\u0131n negatif oldu\u011fu durumlar i\u00e7in bile do\u011fru sonu\u00e7 alman\u0131z\u0131 sa\u011flar. B\u00f6ylece bo\u015f alt diziye izin vermeme kural\u0131na da uyulur.\n<\/div>\n<h2>Kadane's Algoritmas\u0131n\u0131 \u0130leri Seviyede Kullanma: \u0130pu\u00e7lar\u0131 ve Alternatifler<\/h2>\n<p>Kadane's Algoritmas\u0131, maksimum alt dizi toplam\u0131n\u0131 bulmada son derece etkili ve zarif bir \u00e7\u00f6z\u00fcm sunsa da, problemin farkl\u0131 varyasyonlar\u0131 veya daha kapsaml\u0131 ihtiya\u00e7lar do\u011fdu\u011funda baz\u0131 ileri seviye yakla\u015f\u0131mlar gerekebilir. Algoritman\u0131n temel mant\u0131\u011f\u0131n\u0131 anlad\u0131ktan sonra, onu daha \u00e7e\u015fitli senaryolara uyarlamak veya performans\u0131n\u0131 daha da optimize etmek m\u00fcmk\u00fcnd\u00fcr.<\/p>\n<p>\u0130lk olarak, orijinal Kadane's Algoritmas\u0131 sadece maksimum toplam\u0131 d\u00f6nd\u00fcr\u00fcr. Ancak \u00e7o\u011fu zaman, bu maksimum toplam\u0131 veren alt dizinin hangi indeksler aras\u0131nda (ba\u015flang\u0131\u00e7 ve biti\u015f noktalar\u0131) oldu\u011funu bilmek isteriz. Bunu elde etmek i\u00e7in algoritmaya birka\u00e7 k\u00fc\u00e7\u00fck de\u011fi\u015fiklik ekleyebiliriz. Mevcut alt dizinin ba\u015flang\u0131\u00e7 indeksini tutan bir de\u011fi\u015fken (\u00f6rne\u011fin <code>current_start<\/code>) ve genel maksimum alt dizinin ba\u015flang\u0131\u00e7 ve biti\u015f indekslerini tutan ba\u015fka de\u011fi\u015fkenler (\u00f6rne\u011fin <code>global_start<\/code>, <code>global_end<\/code>) eklemek yeterlidir. E\u011fer <code>current_max<\/code> s\u0131f\u0131rlan\u0131p yeni bir alt dizi ba\u015flat\u0131l\u0131yorsa, <code>current_start<\/code> da g\u00fcncel eleman\u0131n indeksine e\u015fitlenmelidir. <code>global_max<\/code> g\u00fcncellendi\u011finde ise, <code>global_start<\/code> ve <code>global_end<\/code> de buna uygun olarak g\u00fcncellenir. Bu, algoritman\u0131n sadece cevab\u0131 de\u011fil, ayn\u0131 zamanda cevab\u0131n konumunu da vermesini sa\u011flar.<\/p>\n<pre><code class=\"language-python\">\ndef kadanes_with_indices(nums):\n    if not nums:\n        return 0, (None, None)\n\n    current_max = nums[0]\n    global_max = nums[0]\n    \n    current_start = 0\n    global_start = 0\n    global_end = 0\n\n    for i in range(1, len(nums)):\n        # E\u011fer mevcut eleman tek ba\u015f\u0131na, mevcut alt diziye eklemekten daha b\u00fcy\u00fckse, yeni bir alt dizi ba\u015flat.\n        if nums[i] > current_max + nums[i]:\n            current_max = nums[i]\n            current_start = i\n        else:\n            current_max += nums[i]\n        \n        # E\u011fer current_max, global_max'ten b\u00fcy\u00fckse, genel maksimumu ve indeksleri g\u00fcncelle.\n        if current_max > global_max:\n            global_max = current_max\n            global_start = current_start\n            global_end = i\n            \n    return global_max, (global_start, global_end)\n\n# \u00d6rnek Kullan\u0131m:\ndizi = [-2, 1, -3, 4, -1, 2, 1, -5, 4]\nmax_sum, indices = kadanes_with_indices(dizi)\nprint(f\"Maksimum Alt Dizi Toplam\u0131: {max_sum}, \u0130ndeksler: {indices}\") \n# \u00c7\u0131kt\u0131: Maksimum Alt Dizi Toplam\u0131: 6, \u0130ndeksler: (3, 6) -> [4, -1, 2, 1]\n<\/pre>\n<p><\/code><\/p>\n<p>Bir di\u011fer \u00f6nemli varyasyon, t\u00fcm say\u0131lar negatif oldu\u011funda ne yap\u0131laca\u011f\u0131d\u0131r. Orijinal Kadane's algoritmas\u0131, bu durumda en b\u00fcy\u00fck negatif say\u0131y\u0131 d\u00f6nd\u00fcr\u00fcr. Ancak baz\u0131 problem tan\u0131mlar\u0131nda, e\u011fer t\u00fcm say\u0131lar negatifse, bo\u015f bir alt dizinin (toplam\u0131 0) tercih edilmesi veya \u00f6zel bir de\u011fer d\u00f6nd\u00fcr\u00fclmesi istenebilir. Bu, algoritman\u0131n ba\u015flang\u0131\u00e7 ve g\u00fcncelleme mant\u0131\u011f\u0131nda k\u00fc\u00e7\u00fck bir de\u011fi\u015fiklikle kolayca y\u00f6netilebilir. \u00d6rne\u011fin, <code>global_max<\/code>'\u0131 ba\u015flang\u0131\u00e7ta <code>-infinity<\/code> (veya problem ba\u011flam\u0131nda uygun bir minimum de\u011fer) olarak ayarlay\u0131p, sadece pozitif toplamlar\u0131n <code>global_max<\/code>'\u0131 g\u00fcncellemesine izin vererek bo\u015f dizi durumunu ele alabiliriz. Ancak klasik Kadane's, en az bir eleman i\u00e7erecek alt diziyi bulmaya odaklan\u0131r.<\/p>\n<h3>Kadane's Algoritmas\u0131n\u0131n 2D Versiyonu: Maksimum Alt Matris Problemi<\/h3>\n<p>Kadane's Algoritmas\u0131n\u0131n belki de en g\u00fc\u00e7l\u00fc uzant\u0131s\u0131, iki boyutlu diziler (matrisler) \u00fczerinde uygulanan \"Maksimum Alt Matris Toplam\u0131\" problemidir. Bu problem, bir matrisin i\u00e7indeki t\u00fcm alt matrisler aras\u0131ndan elemanlar\u0131n\u0131n toplam\u0131 en b\u00fcy\u00fck olan\u0131 bulmay\u0131 hedefler. Bu, g\u00f6r\u00fcnt\u00fc i\u015fleme, veri madencili\u011fi ve finansal modellemede \u00e7ok \u00f6nemli uygulamalara sahiptir. 2D problemi do\u011frudan \u00e7\u00f6zmek <code>O(N^6)<\/code> veya <code>O(N^4)<\/code> gibi y\u00fcksek karma\u015f\u0131kl\u0131klara yol a\u00e7abilirken, Kadane's Algoritmas\u0131 kullan\u0131larak bu, <code>O(rows * cols^2)<\/code> veya <code>O(cols * rows^2)<\/code> gibi \u00e7ok daha verimli bir \u015fekilde \u00e7\u00f6z\u00fclebilir.<\/p>\n<p>Bu yakla\u015f\u0131m, matrisin her olas\u0131 s\u00fctun \u00e7ifti aras\u0131nda, bu s\u00fctunlar aras\u0131ndaki elemanlar\u0131n toplam\u0131n\u0131 tek boyutlu bir diziye d\u00f6n\u00fc\u015ft\u00fcrerek \u00e7al\u0131\u015f\u0131r. Yani, <code>matris[i][c1]<\/code> ile <code>matris[i][c2]<\/code> aras\u0131ndaki t\u00fcm elemanlar\u0131n toplam\u0131n\u0131 al\u0131p, bunu yeni bir \"ara toplam\" dizisinin <code>i<\/code>. eleman\u0131 olarak kabul ederiz. Bu yeni tek boyutlu ara toplam dizisi \u00fczerinde klasik Kadane's Algoritmas\u0131n\u0131 \u00e7al\u0131\u015ft\u0131r\u0131r\u0131z. T\u00fcm olas\u0131 s\u00fctun \u00e7iftleri i\u00e7in bu i\u015flemi tekrarlayarak, maksimum alt matris toplam\u0131n\u0131 bulabiliriz. Bu, Kadane's algoritmas\u0131n\u0131n temel prensibinin, daha karma\u015f\u0131k boyutlara nas\u0131l genellenebilece\u011finin m\u00fckemmel bir \u00f6rne\u011fidir.<\/p>\n<h2>Web Sayfalar\u0131nda Algoritma Sunumu: Mobil Uyumluluk ve SEO \u0130pu\u00e7lar\u0131<\/h2>\n<p>Haz\u0131rlad\u0131\u011f\u0131m\u0131z bu makale gibi teknik i\u00e7eriklerin sadece do\u011fru ve kapsaml\u0131 olmas\u0131 yeterli de\u011fildir. Ayn\u0131 zamanda, okuyucunun farkl\u0131 cihazlardan (mobil telefonlar, tabletler, masa\u00fcst\u00fc bilgisayarlar) i\u00e7eri\u011fe rahat\u00e7a eri\u015febilmesi ve arama motorlar\u0131nda kolayca bulunabilmesi i\u00e7in belirli standartlara uymas\u0131 gerekmektedir. Bu b\u00f6l\u00fcmde, algoritmalar\u0131 ve teknik bilgiyi web'de sunarken dikkat etmemiz gereken mobil uyumluluk ve SEO ipu\u00e7lar\u0131na odaklanaca\u011f\u0131z.<\/p>\n<p>HTML yap\u0131s\u0131, i\u00e7eri\u011fin semantik anlam\u0131n\u0131 do\u011fru bir \u015fekilde yans\u0131tmal\u0131d\u0131r. \u00d6rne\u011fin, kod bloklar\u0131 i\u00e7in <code><\/p>\n<pre><code><\/code> etiketleri kullanmak, hem taray\u0131c\u0131lara hem de arama motorlar\u0131na bunun bir kod blo\u011fu oldu\u011funu belirtir. Bu, kodun do\u011fru bir \u015fekilde formatlanmas\u0131n\u0131 sa\u011flarken, ayn\u0131 zamanda okunabilirli\u011fi art\u0131r\u0131r. Listeler (<code><ul><\/code>, <code><ol><\/code>) ve tablolar (<code><table><\/code>) gibi yap\u0131sal etiketler de i\u00e7eri\u011fi d\u00fczenlemek ve anlamland\u0131rmak i\u00e7in \u00f6nemlidir. \u00d6zellikle algoritmalar\u0131n ad\u0131m ad\u0131m a\u00e7\u0131klanmas\u0131nda maddeleme veya numara sistemi kullanmak, okuyucunun takibini kolayla\u015ft\u0131r\u0131r.<\/p>\n\n<p>SEO (Arama Motoru Optimizasyonu) a\u00e7\u0131s\u0131ndan, ba\u015fl\u0131klar (<code><h2><\/code>, <code><h3><\/code>) anahtar kelime i\u00e7ermeli ve soru format\u0131nda veya \"Nas\u0131l Yap\u0131l\u0131r?\" \u015feklinde olmal\u0131d\u0131r. Bu, kullan\u0131c\u0131lar\u0131n arama motorlar\u0131nda yapt\u0131klar\u0131 sorgularla daha iyi e\u015fle\u015fmesini sa\u011flar. \u0130lk paragraf, bir meta a\u00e7\u0131klamas\u0131 gibi davranarak makalenin ana konusunu 150-160 karakterde \u00f6zetlemelidir. LSI (Latent Semantic Indexing) anahtar kelimelerin (dinamik programlama, array, zaman karma\u015f\u0131kl\u0131\u011f\u0131 gibi) do\u011fal bir \u015fekilde metne da\u011f\u0131t\u0131lmas\u0131, i\u00e7eri\u011fin kapsaml\u0131l\u0131\u011f\u0131n\u0131 ve alaka d\u00fczeyini art\u0131r\u0131r. Unutulmamal\u0131d\u0131r ki, Yoast SEO gibi ara\u00e7lar bu t\u00fcr fakt\u00f6rleri de\u011ferlendirir ve makalenin arama motorlar\u0131ndaki performans\u0131n\u0131 do\u011frudan etkiler.<\/p>\n\n<h3>Mobil Cihazlar \u0130\u00e7in Duyarl\u0131 HTML ve CSS Yap\u0131lar\u0131 Nas\u0131l Olu\u015fturulur?<\/h3>\n<p>G\u00fcn\u00fcm\u00fczde internet trafi\u011finin b\u00fcy\u00fck bir \u00e7o\u011funlu\u011fu mobil cihazlardan gelmektedir. Bu nedenle, web sayfalar\u0131n\u0131n mobil uyumlu olmas\u0131, kullan\u0131c\u0131 deneyimi ve SEO i\u00e7in hayati \u00f6nem ta\u015f\u0131r. Duyarl\u0131 tasar\u0131m (responsive design), i\u00e7eri\u011fin farkl\u0131 ekran boyutlar\u0131na ve \u00e7\u00f6z\u00fcn\u00fcrl\u00fcklerine otomatik olarak adapte olmas\u0131n\u0131 sa\u011flar. Bu genellikle CSS'deki <code>@media<\/code> kurallar\u0131 kullan\u0131larak yap\u0131l\u0131r. \u0130\u015fte basit bir \u00f6rnek:<\/p>\n\n<pre><code class=\"language-css\">\n\/* Genel stil *\/\nbody {\n    font-family: Arial, sans-serif;\n    line-height: 1.6;\n    margin: 0;\n    padding: 20px;\n}\n\n\/* K\u00fc\u00e7\u00fck ekranlar i\u00e7in (mobil cihazlar) *\/\n@media screen and (max-width: 768px) {\n    body {\n        padding: 10px;\n        font-size: 14px;\n    }\n    h2 {\n        font-size: 20px;\n    }\n    pre {\n        \/* Kod bloklar\u0131n\u0131n yatay kayd\u0131rma \u00e7ubu\u011fu ile g\u00f6sterilmesi *\/\n        overflow-x: auto;\n        white-space: pre-wrap; \/* Uzun sat\u0131rlar\u0131 otomatik sar *\/\n        word-wrap: break-word; \/* Kelimeleri b\u00f6lerek s\u0131\u011fd\u0131r *\/\n    }\n    table {\n        \/* Tablolar\u0131n mobil cihazlarda yatay kayd\u0131r\u0131labilir olmas\u0131 *\/\n        display: block;\n        overflow-x: auto;\n        white-space: nowrap;\n    }\n}\n\n\/* Orta ekranlar i\u00e7in (tabletler) *\/\n@media screen and (min-width: 769px) and (max-width: 1024px) {\n    body {\n        padding: 15px;\n        font-size: 16px;\n    }\n    h2 {\n        font-size: 24px;\n    }\n}\n\n\/* B\u00fcy\u00fck ekranlar i\u00e7in (masa\u00fcst\u00fc) *\/\n@media screen and (min-width: 1025px) {\n    body {\n        padding: 30px;\n        max-width: 960px; \/* \u0130\u00e7eri\u011fi merkezde tut *\/\n        margin: 0 auto;\n    }\n    h2 {\n        font-size: 28px;\n    }\n}\n\n.expert-tip {\n    background-color: #e6f7ff;\n    border-left: 5px solid #33b5e5;\n    padding: 15px;\n    margin: 20px 0;\n    font-style: italic;\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki CSS \u00f6rne\u011finde, <code>@media<\/code> kurallar\u0131 kullan\u0131larak ekran boyutuna g\u00f6re farkl\u0131 stiller uygulanm\u0131\u015ft\u0131r. \u00d6zellikle <code><\/p>\n<pre><\/code> (kod bloklar\u0131) ve <code><\/p>\n<table><\/code> etiketleri i\u00e7in <code>overflow-x: auto;<\/code> kullan\u0131m\u0131, bu elementlerin mobil cihazlarda ta\u015fma yapmas\u0131n\u0131 engeller ve yatay kayd\u0131rma \u00e7ubu\u011fu ekleyerek i\u00e7eri\u011fin tamam\u0131n\u0131n eri\u015filebilir olmas\u0131n\u0131 sa\u011flar. Bu detaylar, hem estetik hem de i\u015flevsel a\u00e7\u0131dan kullan\u0131c\u0131 deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirir.<\/p>\n<h2>Kadane's Algoritmas\u0131 Hakk\u0131nda S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h2>\n<p>Kadane's Algoritmas\u0131'n\u0131n inceliklerini ve pratik uygulamalar\u0131n\u0131 derinlemesine inceledik. Bu dinamik programlama harikas\u0131, bir dizi i\u00e7erisindeki maksimum alt dizi toplam\u0131n\u0131 etkili bir \u015fekilde bulmam\u0131z\u0131 sa\u011flayan basit ama g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. Algoritman\u0131n <code>O(n)<\/code> zaman karma\u015f\u0131kl\u0131\u011f\u0131 ve <code>O(1)<\/code> alan karma\u015f\u0131kl\u0131\u011f\u0131, onu \u00e7ok \u00e7e\u015fitli optimizasyon problemlerinde tercih edilen bir \u00e7\u00f6z\u00fcm haline getirir. \u015eimdi, bu konuyla ilgili s\u0131k\u00e7a sorulan baz\u0131 sorulara yan\u0131t verelim.<\/p>\n<h3>Kadane's Algoritmas\u0131 Neden Dinamik Programlama Olarak Kabul Edilir?<\/h3>\n<p>Kadane's Algoritmas\u0131, dinamik programlaman\u0131n iki temel prensibini m\u00fckemmel bir \u015fekilde \u00f6rnekler: \u00f6rt\u00fc\u015fen alt problemler (overlapping subproblems) ve optimal alt yap\u0131 (optimal substructure). Her bir ad\u0131mda, mevcut elemana kadar olan maksimum alt dizi toplam\u0131n\u0131 (<code>current_max<\/code>) hesaplarken, \u00f6nceki alt problemlerin \u00e7\u00f6z\u00fcm\u00fcnden (\u00f6nceki <code>current_max<\/code> de\u011feri) faydalan\u0131r\u0131z. Yani, daha b\u00fcy\u00fck bir problemin \u00e7\u00f6z\u00fcm\u00fc, daha k\u00fc\u00e7\u00fck alt problemlerin optimal \u00e7\u00f6z\u00fcmlerinin birle\u015fiminden olu\u015fur. Bu, klasik bir dinamik programlama yakla\u015f\u0131m\u0131d\u0131r, \u00e7\u00fcnk\u00fc ayn\u0131 alt problemlerin tekrar tekrar hesaplanmas\u0131n\u0131 \u00f6nleyerek verimlilik sa\u011flar.<\/p>\n<h3>T\u00fcm Say\u0131lar Negatif Oldu\u011funda Algoritma Nas\u0131l Davran\u0131r?<\/h3>\n<p>Kadane's Algoritmas\u0131'n\u0131n standart uygulamas\u0131nda, e\u011fer bir dizideki t\u00fcm say\u0131lar negatifse, algoritma dizideki en b\u00fcy\u00fck (s\u0131f\u0131ra en yak\u0131n) negatif say\u0131y\u0131 maksimum alt dizi toplam\u0131 olarak d\u00f6nd\u00fcr\u00fcr. \u00d6rne\u011fin, <code>[-5, -2, -8, -1]<\/code> dizisi i\u00e7in algoritma <code>-1<\/code> sonucunu verecektir. Bu durum, \"bo\u015f alt diziye izin verilmez\" ve \"alt dizinin en az bir eleman i\u00e7ermesi gerekir\" varsay\u0131m\u0131na dayan\u0131r. E\u011fer bo\u015f alt diziye izin verilmesi gereken bir senaryo olsayd\u0131, maksimum toplam <code>0<\/code> olarak de\u011ferlendirilirdi ve algoritman\u0131n ba\u015flang\u0131\u00e7 ve g\u00fcncelleme mant\u0131\u011f\u0131nda k\u00fc\u00e7\u00fck bir adaptasyon gerekirdi.<\/p>\n<h3>Kadane's Algoritmas\u0131n\u0131n Zaman Karma\u015f\u0131kl\u0131\u011f\u0131 ve Alan Karma\u015f\u0131kl\u0131\u011f\u0131 Nedir?<\/h3>\n<p>Kadane's Algoritmas\u0131, diziyi yaln\u0131zca bir kez ba\u015ftan sona tarad\u0131\u011f\u0131 i\u00e7in <code>O(n)<\/code> (do\u011frusal) zaman karma\u015f\u0131kl\u0131\u011f\u0131na sahiptir. Burada <code>n<\/code>, dizinin eleman say\u0131s\u0131n\u0131 temsil eder. Her eleman i\u00e7in sabit say\u0131da i\u015flem (toplama, kar\u015f\u0131la\u015ft\u0131rma) yap\u0131l\u0131r. Alan karma\u015f\u0131kl\u0131\u011f\u0131 ise <code>O(1)<\/code>'dir, \u00e7\u00fcnk\u00fc algoritma yaln\u0131zca birka\u00e7 sabit boyutlu de\u011fi\u015fken (<code>current_max<\/code>, <code>global_max<\/code> vb.) kullan\u0131r ve dizinin boyutundan ba\u011f\u0131ms\u0131z olarak ek depolama ihtiyac\u0131 duymaz. Bu \u00f6zellikleri, Kadane's algoritmas\u0131n\u0131 b\u00fcy\u00fck veri setleri \u00fczerinde bile son derece verimli k\u0131lar.<\/p>\n<h3>Kadane's Algoritmas\u0131n\u0131n S\u0131n\u0131rlamalar\u0131 Nelerdir?<\/h3>\n<p>Kadane's Algoritmas\u0131, bir boyutlu s\u00fcrekli alt diziler i\u00e7in m\u00fckemmel olsa da, belirli s\u0131n\u0131rlamalara sahiptir:<\/p>\n<ol>\n<li><strong>S\u00fcrekli Alt Dizi:<\/strong> Sadece s\u00fcrekli (ard\u0131\u015f\u0131k) alt diziler i\u00e7in \u00e7al\u0131\u015f\u0131r. Ayr\u0131k elemanlardan olu\u015fan alt diziler i\u00e7in uygulanamaz.<\/li>\n<li><strong>Negatif Say\u0131lar:<\/strong> Varsay\u0131lan olarak, t\u00fcm elemanlar negatif olsa bile bir alt dizi bulur (en b\u00fcy\u00fck negatif say\u0131y\u0131). Bo\u015f alt diziye izin verme senaryolar\u0131 i\u00e7in adaptasyon gerektirir.<\/li>\n<li><strong>2D veya Daha Y\u00fcksek Boyutlar:<\/strong> Do\u011frudan 2D veya daha y\u00fcksek boyutlu dizilere uygulanamaz; ancak 2D problemi \u00e7\u00f6zmek i\u00e7in bir alt rutin olarak kullan\u0131labilir (Maksimum Alt Matris Toplam\u0131 probleminde oldu\u011fu gibi).<\/li>\n<\/ol>\n<p>Bu s\u0131n\u0131rlamalar, Kadane's algoritmas\u0131n\u0131n uygun oldu\u011fu problem t\u00fcrlerini net bir \u015fekilde \u00e7izerken, ayn\u0131 zamanda daha karma\u015f\u0131k varyasyonlar i\u00e7in temel bir yap\u0131 ta\u015f\u0131 olma potansiyelini de g\u00f6sterir.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Kadane&#8217;s Algoritmas\u0131, bir dizi i\u00e7indeki maksimum toplam\u0131 veren s\u00fcrekli alt diziyi bulmak i\u00e7in kullan\u0131lan etkili bir dinamik programlama&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-30360","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Kadane&#039;s Algoritmas\u0131 ile Maksimum Alt Dizi Toplam\u0131 Nas\u0131l Bulunur?<\/title>\n<meta name=\"description\" content=\"Kadane&#039;s Algoritmas\u0131, bir dizi i\u00e7indeki maksimum toplam\u0131 veren s\u00fcrekli alt diziyi bulmak i\u00e7in kullan\u0131lan etkili bir dinamik programlama y\u00f6ntemidir. Bu makale, algoritman\u0131n mant\u0131\u011f\u0131n\u0131, ad\u0131m ad\u0131m uygulamas\u0131n\u0131, performans avantajlar\u0131n\u0131 ve ger\u00e7ek d\u00fcnya senaryolar\u0131ndaki kullan\u0131m\u0131n\u0131 detayl\u0131ca a\u00e7\u0131kl\u0131yor, b\u00f6ylece konuya tamamen yabanc\u0131 bir okuyucu bile algoritmaya hakim olabilecek.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kadane&#039;s Algoritmas\u0131 ile Maksimum Alt Dizi Toplam\u0131 Nas\u0131l Bulunur?\" \/>\n<meta property=\"og:description\" content=\"Kadane&#039;s Algoritmas\u0131, bir dizi i\u00e7indeki maksimum toplam\u0131 veren s\u00fcrekli alt diziyi bulmak i\u00e7in kullan\u0131lan etkili bir dinamik programlama y\u00f6ntemidir. Bu makale, algoritman\u0131n mant\u0131\u011f\u0131n\u0131, ad\u0131m ad\u0131m uygulamas\u0131n\u0131, performans avantajlar\u0131n\u0131 ve ger\u00e7ek d\u00fcnya senaryolar\u0131ndaki kullan\u0131m\u0131n\u0131 detayl\u0131ca a\u00e7\u0131kl\u0131yor, b\u00f6ylece konuya tamamen yabanc\u0131 bir okuyucu bile algoritmaya hakim olabilecek.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-26T19:02:16+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"23 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Kadane&#8217;s Algoritmas\u0131 ile Maksimum Alt Dizi Toplam\u0131 Nas\u0131l Bulunur?\",\"datePublished\":\"2025-09-26T19:02:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/\"},\"wordCount\":3797,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/\",\"name\":\"Kadane's Algoritmas\u0131 ile Maksimum Alt Dizi Toplam\u0131 Nas\u0131l Bulunur?\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-09-26T19:02:16+00:00\",\"description\":\"Kadane's Algoritmas\u0131, bir dizi i\u00e7indeki maksimum toplam\u0131 veren s\u00fcrekli alt diziyi bulmak i\u00e7in kullan\u0131lan etkili bir dinamik programlama y\u00f6ntemidir. Bu makale, algoritman\u0131n mant\u0131\u011f\u0131n\u0131, ad\u0131m ad\u0131m uygulamas\u0131n\u0131, performans avantajlar\u0131n\u0131 ve ger\u00e7ek d\u00fcnya senaryolar\u0131ndaki kullan\u0131m\u0131n\u0131 detayl\u0131ca a\u00e7\u0131kl\u0131yor, b\u00f6ylece konuya tamamen yabanc\u0131 bir okuyucu bile algoritmaya hakim olabilecek.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kadane&#8217;s Algoritmas\u0131 ile Maksimum Alt Dizi Toplam\u0131 Nas\u0131l Bulunur?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Kadane's Algoritmas\u0131 ile Maksimum Alt Dizi Toplam\u0131 Nas\u0131l Bulunur?","description":"Kadane's Algoritmas\u0131, bir dizi i\u00e7indeki maksimum toplam\u0131 veren s\u00fcrekli alt diziyi bulmak i\u00e7in kullan\u0131lan etkili bir dinamik programlama y\u00f6ntemidir. Bu makale, algoritman\u0131n mant\u0131\u011f\u0131n\u0131, ad\u0131m ad\u0131m uygulamas\u0131n\u0131, performans avantajlar\u0131n\u0131 ve ger\u00e7ek d\u00fcnya senaryolar\u0131ndaki kullan\u0131m\u0131n\u0131 detayl\u0131ca a\u00e7\u0131kl\u0131yor, b\u00f6ylece konuya tamamen yabanc\u0131 bir okuyucu bile algoritmaya hakim olabilecek.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/","og_locale":"tr_TR","og_type":"article","og_title":"Kadane's Algoritmas\u0131 ile Maksimum Alt Dizi Toplam\u0131 Nas\u0131l Bulunur?","og_description":"Kadane's Algoritmas\u0131, bir dizi i\u00e7indeki maksimum toplam\u0131 veren s\u00fcrekli alt diziyi bulmak i\u00e7in kullan\u0131lan etkili bir dinamik programlama y\u00f6ntemidir. Bu makale, algoritman\u0131n mant\u0131\u011f\u0131n\u0131, ad\u0131m ad\u0131m uygulamas\u0131n\u0131, performans avantajlar\u0131n\u0131 ve ger\u00e7ek d\u00fcnya senaryolar\u0131ndaki kullan\u0131m\u0131n\u0131 detayl\u0131ca a\u00e7\u0131kl\u0131yor, b\u00f6ylece konuya tamamen yabanc\u0131 bir okuyucu bile algoritmaya hakim olabilecek.","og_url":"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-09-26T19:02:16+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"23 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Kadane&#8217;s Algoritmas\u0131 ile Maksimum Alt Dizi Toplam\u0131 Nas\u0131l Bulunur?","datePublished":"2025-09-26T19:02:16+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/"},"wordCount":3797,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/","url":"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/","name":"Kadane's Algoritmas\u0131 ile Maksimum Alt Dizi Toplam\u0131 Nas\u0131l Bulunur?","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-09-26T19:02:16+00:00","description":"Kadane's Algoritmas\u0131, bir dizi i\u00e7indeki maksimum toplam\u0131 veren s\u00fcrekli alt diziyi bulmak i\u00e7in kullan\u0131lan etkili bir dinamik programlama y\u00f6ntemidir. Bu makale, algoritman\u0131n mant\u0131\u011f\u0131n\u0131, ad\u0131m ad\u0131m uygulamas\u0131n\u0131, performans avantajlar\u0131n\u0131 ve ger\u00e7ek d\u00fcnya senaryolar\u0131ndaki kullan\u0131m\u0131n\u0131 detayl\u0131ca a\u00e7\u0131kl\u0131yor, b\u00f6ylece konuya tamamen yabanc\u0131 bir okuyucu bile algoritmaya hakim olabilecek.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/kadanes-algoritmasi-ile-maksimum-alt-dizi-toplami-nasil-bulunur\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Kadane&#8217;s Algoritmas\u0131 ile Maksimum Alt Dizi Toplam\u0131 Nas\u0131l Bulunur?"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30360","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=30360"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30360\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=30360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=30360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=30360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}