{"id":5016,"date":"2021-09-05T10:38:17","date_gmt":"2021-09-05T10:38:17","guid":{"rendered":"https:\/\/serkanseker.com\/?p=5016"},"modified":"2021-09-05T10:38:17","modified_gmt":"2021-09-05T10:38:17","slug":"algoritama-karmasiklik-analizi","status":"publish","type":"post","link":"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/","title":{"rendered":"Algoritamalar\u0131n Karma\u015f\u0131kl\u0131k Analizi \u2013 Complexity Analysis"},"content":{"rendered":"<div class=\"entry-content entry clearfix\">\n<p>\u00d6nceki makalelerimden birinde <a href=\"https:\/\/www.serkanseker.com\/tr\/algoritma-nedir\/\" rel=\"noreferrer noopener\" target=\"_blank\">algoritmalara k\u0131sa bir giri\u015f<\/a> yapm\u0131\u015ft\u0131m. Bu makalede ise algoritmalar\u0131n karma\u015f\u0131kl\u0131k analizi nedir sorusuna birlikte yan\u0131t arayaca\u011f\u0131z.<\/p>\n<p><strong>Algoritmalar\u0131n karma\u015f\u0131kl\u0131k analizi<\/strong>, bir algoritman\u0131n \u00e7al\u0131\u015fmas\u0131 i\u00e7in gereken kaynak miktar\u0131n\u0131n belirlenmesidir. Yani algoritman\u0131n performans\u0131n\u0131 ve kaynak kullan\u0131m\u0131n\u0131 \u00f6l\u00e7en teorik bir \u00e7al\u0131\u015fmad\u0131r.<\/p>\n<p>G\u00fcndelik hayatta herhangi bir problemi \u00e7\u00f6zerken birbirinden farkl\u0131 yollara ba\u015fvuruz. Ayn\u0131 \u015fekilde bilgisayar biliminde de belli bir probleme birden fazla \u00e7\u00f6z\u00fcm yolu \u00fcretmek m\u00fcmk\u00fcnd\u00fcr. Tabi ki burada en uygun \u00e7\u00f6z\u00fcm\u00fc, yani algoritmay\u0131 se\u00e7mek \u00f6nemlidir. \u0130\u015fte bu y\u00fczden algoritmalar\u0131n karma\u015f\u0131kl\u0131k analizini iyi bilmek gerekiyor. Bir problemi \u00e7\u00f6zmeye \u00e7al\u0131\u015f\u0131rken olas\u0131 t\u00fcm algoritmalar\u0131 incelemeli ve en uygun olan\u0131 se\u00e7memiz gerekiyor.<\/p>\n<p>Algoritma analizi belirli bir programlama dilinden ba\u011f\u0131ms\u0131z \u015fekilde yap\u0131l\u0131r. Bunun amac\u0131 sadece algoritman\u0131n kendisini analiz edip do\u011fru sonu\u00e7lara ula\u015fmakt\u0131r.<\/p>\n<p>Bir problemi farkl\u0131 algoritmalarla \u00e7\u00f6zebiliriz. Ancak problemi \u00e7\u00f6zerken geli\u015fig\u00fczel bir mant\u0131k kurmak ya da analiz yapmadan bir algoritma se\u00e7mek programdan \u00f6d\u00fcn vermek demektir. Yani algoritma se\u00e7erken o probleme en uygun sonucu getirecek olan algoritmay\u0131 se\u00e7meliyiz. <\/p>\n<p>Eninde sonunda algoritma bir \u015fekilde tasarlan\u0131r ve problem \u00e7\u00f6z\u00fcl\u00fcr. Ama her bak\u0131mdan en iyi sonucu veren tek bir algoritma vard\u0131r.<\/p>\n<p>\u0130\u015fte algoritma analizinin amac\u0131 da o en uygun sonucu veren algoritmay\u0131 bulmakt\u0131r. K\u0131saca algoritmalar\u0131 birbirleriyle kar\u015f\u0131la\u015ft\u0131rmak ve performans\u0131n\u0131 \u00f6l\u00e7mek.<\/p>\n<h2 class=\"wp-block-heading\"><span id=\"Algoritmanin_Performans_Kriterleri_Nelerdir\">Algoritman\u0131n Performans Kriterleri Nelerdir? <\/span><\/h2>\n<p>Yukar\u0131da da belirtti\u011fim gibi bir problemi farkl\u0131 algoritmalar tasarlayarak \u00e7\u00f6zmek m\u00fcmk\u00fcn. Ancak bu \u00e7\u00f6z\u00fcmlerin birbirlerine kar\u015f\u0131 mutlaka avantajlar\u0131 ve dezavantajlar\u0131 olacakt\u0131r.<\/p>\n<p>\u00d6rne\u011fin, h\u0131zl\u0131 \u00e7al\u0131\u015fan bir algoritma bellekten fazla alan t\u00fcketirken, tam tersi daha az bellek t\u00fcketen bir algoritma da daha yava\u015f \u00e7al\u0131\u015f\u0131r.<\/p>\n<p>Bir algoritman\u0131n analizini yaparken baz\u0131 sorular\u0131 g\u00f6z \u00f6n\u00fcnde bulundurmal\u0131y\u0131z:<\/p>\n<ul class=\"wp-block-list\">\n<li>Problemi \u00e7\u00f6zmek i\u00e7in ne kadar bellek t\u00fcketecek?<\/li>\n<li>Problemin \u00e7\u00f6z\u00fclmesi ne kadar zaman alacak?<\/li>\n<li>Daha fazla veri girildi\u011finde algoritma nas\u0131l davran\u0131yor? Yava\u015fl\u0131yor mu yoksa h\u0131zlan\u0131yor mu?<\/li>\n<\/ul>\n<p>Algoritma performans\u0131nda iki temel kriter vard\u0131r: zaman(time) ve alan(space). Algoritmalar bu iki kriterden en uygun sonucu alacak \u015fekilde tasarlanmal\u0131d\u0131r.<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>Zaman (time)<\/strong>\n<ul>\n<li><span style=\"color: initial\">Algoritma ne kadar h\u0131zl\u0131 \u00e7al\u0131\u015f\u0131yor?<\/span><\/li>\n<li>Algoritman\u0131n \u00e7al\u0131\u015fmas\u0131 i\u00e7in gereken zaman\u0131n nas\u0131l tahmin edilir? Gereken zaman nas\u0131l azalt\u0131labilir?<\/li>\n<\/ul>\n<ul>\n<li>Algoritman\u0131n \u00e7al\u0131\u015fma zaman\u0131n\u0131 etkileyen fakt\u00f6rler nelerdir?<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul class=\"wp-block-list\">\n<li><strong>Alan (space)<\/strong>\n<ul>\n<li>Algoritmada hangi veri yap\u0131lar\u0131 kullan\u0131lmal\u0131d\u0131r?<\/li>\n<li>Kullan\u0131lan veri yap\u0131lar\u0131 ne kadar yer kaplar?<\/li>\n<li>Daha iyi sonu\u00e7 veren bir veri yap\u0131s\u0131 kullan\u0131labilir mi?<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Algoritma analizinde temel olarak y\u00fcr\u00fctme zaman\u0131 ve zaman karma\u015f\u0131kl\u0131\u011f\u0131 \u00fczerinde durulur. Ancak t\u00fcm bu sorular\u0131n cevab\u0131n\u0131 verebilmek i\u00e7in <strong>alan karma\u015f\u0131kl\u0131\u011f\u0131, alan maliyeti, zaman karma\u015f\u0131kl\u0131\u011f\u0131 <\/strong>ve<strong> y\u00fcr\u00fctme zaman\u0131<\/strong> gibi kavramlar\u0131 da incelemek gerekiyor.<\/p>\n<h3 class=\"wp-block-heading\"><span id=\"Alan_Maliyeti_Space_Coast\">Alan Maliyeti (Space Coast) <\/span><\/h3>\n<p>Basit\u00e7e, algoritman\u0131n \u00e7al\u0131\u015fmas\u0131 i\u00e7in gereken bellek miktar\u0131na denir. Alan maliyeti program\u0131n kodlar\u0131, y\u0131\u011f\u0131n ve bellek i\u00e7in gerekli olan t\u00fcm alanlard\u0131r. S(n) ile g\u00f6sterilir.<\/p>\n<p>\u00d6rne\u011fin, 2 bytel\u0131k tamsay\u0131 olan n elemanl\u0131 bir k\u00fcme i\u00e7in alan maliyeti ba\u011f\u0131nt\u0131s\u0131 S(n) = 2n \u015feklinde g\u00f6sterilir.<\/p>\n<h3 class=\"wp-block-heading\"><span id=\"Yurutme_Zamani_veya_Calisma_Zamani_Running_Time\">Y\u00fcr\u00fctme Zaman\u0131 veya \u00c7al\u0131\u015fma Zaman\u0131 (Running Time) <\/span><\/h3>\n<p>\u00c7al\u0131\u015fma zaman\u0131 algortimadaki d\u00f6ng\u00fcler, atama, kar\u015f\u0131la\u015ft\u0131rma ve aritmetik operasyonlar gibi i\u015flemlerin ka\u00e7 kere y\u00fcr\u00fct\u00fcld\u00fc\u011f\u00fcn\u00fc veren ba\u011f\u0131nt\u0131d\u0131r. Di\u011fer bir ifadeyle, N boyutlu bir algoritmay\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in gereken zamana denir. T(N) ile g\u00f6sterilir.<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>NOT<\/strong>: \u00c7al\u0131\u015fma zaman\u0131, zaman karma\u015f\u0131kl\u0131\u011f\u0131yla benzerdir. Algoritmadaki eleman say\u0131s\u0131 artt\u0131\u011f\u0131nda \u00e7al\u0131\u015fma zaman\u0131, zaman karma\u015f\u0131kl\u0131\u011f\u0131 olarak adland\u0131r\u0131l\u0131r. Ancak yine de \u00e7al\u0131\u015fma zaman\u0131 ve zaman karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 birbirinden ay\u0131ran baz\u0131 noktalar vard\u0131r.<\/li>\n<\/ul>\n<p>\u00c7al\u0131\u015fma zaman\u0131n\u0131n hesaplan\u0131rken dikkat edilmesi gereken birimler \u015funlard\u0131r:<\/p>\n<ul class=\"wp-block-list\">\n<li>D\u00f6ng\u00fc say\u0131lar\u0131 (for d\u00f6ng\u00fcs\u00fc, while d\u00f6ng\u00fcs\u00fc vb.)<\/li>\n<li>Atama say\u0131lar\u0131<\/li>\n<li>\u0130\u015flem say\u0131lar\u0131<\/li>\n<li>Deyimler (se\u00e7im deyimleri, yineleme deyimleri vb.)<\/li>\n<li>Dosya eri\u015fim say\u0131s\u0131<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\"><span id=\"Zaman_Karmasikligi_Time_Complexity\">Zaman Karma\u015f\u0131kl\u0131\u011f\u0131 (Time Complexity)<\/span><\/h2>\n<p>Zaman karma\u015f\u0131kl\u0131\u011f\u0131, algoritman\u0131n y\u00fcr\u00fctme zaman\u0131n\u0131n derecesinin asimptotik notasyonlarla g\u00f6sterilmesidir. Bir ba\u015fka deyi\u015fle bir algoritman\u0131n \u00e7al\u0131\u015fmas\u0131 i\u00e7in gereken s\u00fcredir. Bu s\u00fcre ne kadar k\u0131sa olursa algoritman\u0131n performans\u0131 o kadar iyi olur. Zaman karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 bir algoritman\u0131n performans\u0131 olarak d\u00fc\u015f\u00fcnebiliriz. <\/p>\n<p>Bu s\u00fcre milisaniyeleri hesaplayarak de\u011fil, yap\u0131lan i\u015flem say\u0131s\u0131na g\u00f6re hesaplanmaktad\u0131r. Tabi ki bu hesaplama yap\u0131l\u0131rken algoritmadaki veri setinin b\u00fcy\u00fckl\u00fc\u011f\u00fcne ve s\u0131ras\u0131na dikkat edilir. <\/p>\n<p>Ama\u00e7, giri\u015f boyutu ve zaman aras\u0131ndaki karma\u015f\u0131kl\u0131\u011f\u0131 azaltmakt\u0131r. Yani detaylar\u0131 es ge\u00e7erek \u00e7al\u0131\u015fma s\u00fcresini indirgemektir.<\/p>\n<p>\u0130\u015fte bu y\u00fczden algoritma sonsuza giderken asimptotik g\u00f6sterimde sabitler ve katsay\u0131lar gibi b\u00fcy\u00fcmeye fazla etkisi olmayan k\u0131s\u0131mlar hesaplanmaz. B\u00f6ylece geriye algoritman\u0131n b\u00fcy\u00fcmesinde as\u0131l etkiye sahip olan de\u011ferler kal\u0131r ve ger\u00e7ek fonksiyona g\u00f6re yakla\u015f\u0131k bir de\u011fer hesaplan\u0131r.<\/p>\n<p>Bir bilgisayar\u0131n donan\u0131m \u00f6zellikleri ne kadar iyi olursa olsun, her zaman en iyi performans g\u00f6steren algoritmay\u0131 se\u00e7mek gerekir. B\u00f6ylece donan\u0131mda yap\u0131lan iyile\u015ftirmelerle algoritma daha da iyi performans g\u00f6stermi\u015f olur.<\/p>\n<h2 class=\"wp-block-heading\"><span id=\"Alan_Karmasikligi_Space_Complexity\">Alan Karma\u015f\u0131kl\u0131\u011f\u0131 (Space Complexity)<\/span><\/h2>\n<p>Alan karma\u015f\u0131kl\u0131\u011f\u0131, bir algoritman\u0131n bir girdi boyutu i\u00e7in \u00e7\u0131kt\u0131 \u00fcretirken ihtiya\u00e7 duydu\u011fu bellek miktar\u0131d\u0131r. Yani buna alan maliyetini \u00f6l\u00e7mek demektir diyebiliriz.<\/p>\n<p>Daha iyi alan karma\u015f\u0131kl\u0131\u011f\u0131na sahip olan algoritma bellekten daha az alan t\u00fcketir. Algoritman\u0131n performans\u0131n\u0131 art\u0131rmak i\u00e7in sistem belle\u011fini art\u0131rmak ilk akla gelen \u00e7\u00f6z\u00fcm olsa da, her zaman daha az alan t\u00fcketen bir algoritma tasarlamak daha mant\u0131kl\u0131d\u0131r.<\/p>\n<p>Alan karma\u015f\u0131kl\u0131\u011f\u0131, algoritmay\u0131 \u00e7al\u0131\u015ft\u0131ran sistem, derleyici ve programlama dili gibi \u00e7e\u015fitli fakt\u00f6rlere ba\u011fl\u0131d\u0131r. Bu y\u00fczden algoritman\u0131n kendisini analiz ederken bu fakt\u00f6rleri dikkate almamal\u0131y\u0131z. <\/p>\n<p>Ne yaz\u0131k ki, algoritma performans\u0131nda zaman ve alan verimlili\u011fi birbirine terstir. Yani h\u0131z artt\u0131k\u00e7a bellek t\u00fcketimi artar. Ya da tam tersi.<\/p>\n<p>\u00d6rnek olarak <strong>merge sort<\/strong>, <strong>bubble sort<\/strong> ve <strong>in-place heap<\/strong> algoritmalar\u0131n\u0131 inceleyelim. Merge sort en h\u0131zl\u0131 ancak en fazla bellek t\u00fcketen algoritmad\u0131r. Bubble sort ise tam tersine en yava\u015f ancak en az bellek t\u00fcketen algoritmad\u0131r. In-place heap ise bu iki algoritman\u0131n aras\u0131nda performans g\u00f6steren daha dengeli bir algoritmad\u0131r. <\/p>\n<h2 class=\"wp-block-heading\"><span id=\"Notation\">Notation<\/span><\/h2>\n<p>Notation, karma\u015f\u0131kl\u0131k analizi yap\u0131lan bir algoritman\u0131n performans\u0131n\u0131n farkl\u0131 g\u00f6sterimler ile temsil edilmesidir. Yukar\u0131da da belirtti\u011fim gibi bir algoritma girilen verilerin b\u00fcy\u00fckl\u00fc\u011f\u00fcne g\u00f6re farkl\u0131 performans g\u00f6sterebilir. <\/p>\n<p>\u00d6rne\u011fin, 1 Kb l\u0131k veriden \u00e7\u0131kt\u0131 \u00fcreten algoritma h\u0131zl\u0131 \u00e7al\u0131\u015f\u0131rken, ayn\u0131 algoritmaya 1 mb veri girildi\u011finde \u00e7\u0131kt\u0131y\u0131 daha yava\u015f \u00fcretebilir. Bu nedenle, olabilecek t\u00fcm durumlar\u0131n karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 analiz etmemiz gerekiyor.<\/p>\n<p>Zaman karma\u015f\u0131kl\u0131\u011f\u0131nda genel olarak \u00fc\u00e7 temel asimptotik notasyon vard\u0131r. Bunlar:<\/p>\n<ul class=\"wp-block-list\">\n<li>Big-O Notasyonu<\/li>\n<li>Omega Notasyonu<\/li>\n<li>Teta Notasyonu<\/li>\n<\/ul>\n<p>Bu notasyonlar aras\u0131nda biz en \u00e7ok Big-O notasyonuyla ilgilenece\u011fiz. Bunun nedenini a\u00e7\u0131klayaca\u011f\u0131m ancak \u00f6nce <strong>best case<\/strong>, <strong>average case<\/strong> ve <strong>worst case<\/strong> kavramlar\u0131n\u0131 inceleyelim.<\/p>\n<h3 class=\"wp-block-heading\"><span id=\"Best_Case_En_Iyi_Durum\">Best Case (En \u0130yi Durum)<\/span><\/h3>\n<p>Algoritman\u0131n karma\u015f\u0131kl\u0131\u011f\u0131 hesaplan\u0131rken en iyi sonucun elde edildi\u011fi duruma denir. Algoritman\u0131n en az ad\u0131mda ve zamanda \u00e7al\u0131\u015ft\u0131\u011f\u0131 durumdur. <\/p>\n<p>\u00c7al\u0131\u015fma zaman\u0131nda bir alt s\u0131n\u0131rd\u0131r. Grafik g\u00f6sterimlerinde alt s\u0131n\u0131r (lower bound) olarak g\u00f6r\u00fcr\u00fcz.<\/p>\n<p>Omega notasyonu ( \u03a9 ) da denir.<\/p>\n<h3 class=\"wp-block-heading\"><span id=\"Average_Case_Ortalama_Durum\">Average Case (Ortalama Durum)<\/span><\/h3>\n<p>Ad\u0131ndan da anla\u015f\u0131laca\u011f\u0131 gibi, best case ile worst case aras\u0131nda ortaya \u00e7\u0131kan durumdur.<\/p>\n<p>Teta notasyonu ( \u03b8 ) da denir. <\/p>\n<h3 class=\"wp-block-heading\"><span id=\"Worst_Case_En_Kotu_Durum\">Worst Case (En K\u00f6t\u00fc Durum)<\/span><\/h3>\n<p>Algoritman\u0131n en fazla ad\u0131mda ve zamanda \u00e7al\u0131\u015ft\u0131\u011f\u0131 durumdur. Olabilecek t\u00fcm olumsuz durumlar\u0131 kapsar.<\/p>\n<p>Big O notasyonu ( O ) da denir. <\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" alt=\"Algoritmalarda best case, worst case ve average case\" class=\"wp-image-511 entered error\" data-lazyloaded=\"1\" data-ll-status=\"error\" data-sizes=\"(max-width: 504px) 100vw, 504px\" data-src=\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/09\/Algoritmalarda-best-case-worst-case-ve-average-case.jpg\" data-srcset=\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/09\/Algoritmalarda-best-case-worst-case-ve-average-case.jpg 504w, https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/09\/Algoritmalarda-best-case-worst-case-ve-average-case-300x192.jpg 300w\" height=\"323\" src=\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/09\/Algoritmalarda-best-case-worst-case-ve-average-case.jpg\" width=\"504\" \/><figcaption>Algoritmalarda best case, worst case ve average case<\/figcaption><\/figure>\n<\/div>\n<p>Karma\u015f\u0131kl\u0131k analizinde verileri sonsuza giderken de\u011ferlendiririz. Worst case de bize algoritman\u0131n sonsuza giderkenki durumunu verir. \u0130\u015fte bu y\u00fczden daha \u00e7ok Big-O notasyonuyla yani \u00fcst s\u0131n\u0131r (upper bound) de\u011feri ilgileniriz. Bu \u015fekilde algoritman\u0131n en k\u00f6t\u00fc senaryosunu inceleyebiliriz.<\/p>\n<p>\u015eimdi bu notasyonlara k\u0131saca bir g\u00f6z atal\u0131m.<\/p>\n<h3 class=\"wp-block-heading\"><span id=\"Omega_Notasyonu_Big-_Notasyonu\">Omega Notasyonu Big-\u03a9 Notasyonu<\/span><\/h3>\n<p><strong>Omega notasyonu (Omega Notation)<\/strong>, asimptotik <strong>alt s\u0131n\u0131r\u0131(lower bound)<\/strong>\u00a0ifade eder. Bu notasyonla algoritma zaman a\u00e7\u0131s\u0131ndan en iyi duruma(best case) ula\u015fm\u0131\u015f olur. <strong>B\u00fcy\u00fck-O g\u00f6sterimi<\/strong>nin tersidir.<\/p>\n<h3 class=\"wp-block-heading\"><span id=\"Teta_Notasyonu_Big-_Notasyonu\">Teta Notasyonu Big-\u03b8 Notasyonu<\/span><\/h3>\n<p><strong>Teta g\u00f6sterimi<\/strong>, alt s\u0131n\u0131r(lower bound) ile \u00fcst s\u0131n\u0131r(upper bound) aras\u0131nda kalan ortalama bir karma\u015f\u0131kl\u0131\u011f\u0131 ifade eder.. Yani,\u00a0<strong>Big-O notasyonu<\/strong>\u00a0ile <strong>Big Omega notasyonu<\/strong> aras\u0131nda yer al\u0131r.<\/p>\n<h3 class=\"wp-block-heading\"><span id=\"Big-O_Notasyonu_Buyuk_O_Gosterimi\">Big-O Notasyonu B\u00fcy\u00fck O G\u00f6sterimi<\/span><\/h3>\n<p><strong>Big O Notasyonu<\/strong>, algoritma analizindeki\u00a0<strong>zaman karma\u015f\u0131kl\u0131\u011f\u0131nda<\/strong>\u00a0\u00fcst s\u0131n\u0131r\u0131(upper bound) tan\u0131mlar.\u00a0<em>Algoritman\u0131n b\u00fcy\u00fcme h\u0131z\u0131n\u0131\u00a0<\/em>(growth rate) temsil etmek i\u00e7in kullan\u0131l\u0131r. <\/p>\n<p>Bir algotirman\u0131n karma\u015f\u0131kl\u0131k analizi yap\u0131ld\u0131ktan sonra ortaya \u00e7\u0131kan ifadeleri sadele\u015ftirerek algoritman\u0131n en sade karma\u015f\u0131kl\u0131\u011f\u0131n\u0131n bulmam\u0131z\u0131 sa\u011flar.<\/p>\n<p>Mesela, 6<em>n<\/em><sup>3<\/sup>+8<em>n<\/em>+4 ifadesini sadele\u015ftirerek O(<em>n<\/em><sup>3<\/sup>) \u015feklinde g\u00f6sterebiliriz. <\/p>\n<h2 class=\"wp-block-heading\"><span id=\"Son_Dusunceler\">Son D\u00fc\u015f\u00fcnceler <\/span><\/h2>\n<p>\u00d6zet ge\u00e7ecek olursak, bir algoritman\u0131n karma\u015f\u0131kl\u0131k analizi yap\u0131l\u0131rken temel olarak alan karma\u015f\u0131kl\u0131\u011f\u0131 ve zaman karma\u015f\u0131kl\u0131\u011f\u0131 incelenir. Burada ama\u00e7 her zaman en iyi performans g\u00f6steren algoritmay\u0131 bulmakt\u0131r.<\/p>\n<p>Bu makalede algoritmalar\u0131n karma\u015f\u0131kl\u0131k analizinin ne oldu\u011funu, neden \u00f6nemli oldu\u011funu ve Big-O g\u00f6steriminin neden \u00f6enmli oldu\u011funu anlatmaya \u00e7al\u0131\u015ft\u0131m. Tabi ki bu konular daha ayr\u0131nt\u0131l\u0131 \u015fekilde incelenebilir.<\/p>\n<p><!-- CONTENT END 1 -->\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u00d6nceki makalelerimden birinde algoritmalara k\u0131sa bir giri\u015f yapm\u0131\u015ft\u0131m. Bu makalede ise algoritmalar\u0131n karma\u015f\u0131kl\u0131k analizi nedir sorusuna birlikte yan\u0131t arayaca\u011f\u0131z. Algoritmalar\u0131n karma\u015f\u0131kl\u0131k analizi , bir algoritman\u0131n \u00e7al<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","footnotes":""},"categories":[575],"tags":[576,577,578,579,580,581,574,42,570,582,19,28,4,15,5],"class_list":["post-5016","post","type-post","status-publish","format-standard","hentry","category-turkish","tag-net-maui","tag-algoritma","tag-dependencyservice","tag-giris-ekrani","tag-kaynak-sozlukleri","tag-malzeme-temasi","tag-monkeycache","tag-mvvm","tag-nuget","tag-onboarding-screen","tag-sqlite","tag-syncfusion","tag-xamarin","tag-xamarin-android","tag-xamarin-forms"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Algoritamalar\u0131n Karma\u015f\u0131kl\u0131k Analizi \u2013 Complexity Analysis - Serkan Seker TR<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Algoritamalar\u0131n Karma\u015f\u0131kl\u0131k Analizi \u2013 Complexity Analysis - Serkan Seker TR\" \/>\n<meta property=\"og:description\" content=\"\u00d6nceki makalelerimden birinde algoritmalara k\u0131sa bir giri\u015f yapm\u0131\u015ft\u0131m. Bu makalede ise algoritmalar\u0131n karma\u015f\u0131kl\u0131k analizi nedir sorusuna birlikte yan\u0131t arayaca\u011f\u0131z. Algoritmalar\u0131n karma\u015f\u0131kl\u0131k analizi , bir algoritman\u0131n \u00e7al\" \/>\n<meta property=\"og:url\" content=\"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/\" \/>\n<meta property=\"og:site_name\" content=\"Serkan Seker TR\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-05T10:38:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/09\/Algoritmalarda-best-case-worst-case-ve-average-case.jpg\" \/>\n<meta name=\"author\" content=\"serkanadmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"serkanadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/\"},\"author\":{\"name\":\"serkanadmin\",\"@id\":\"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5\"},\"headline\":\"Algoritamalar\u0131n Karma\u015f\u0131kl\u0131k Analizi \u2013 Complexity Analysis\",\"datePublished\":\"2021-09-05T10:38:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/\"},\"wordCount\":1673,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/09\/Algoritmalarda-best-case-worst-case-ve-average-case.jpg\",\"keywords\":[\".net maui\",\"algoritma\",\"DependencyService\",\"giri\u015f ekran\u0131\",\"kaynak s\u00f6zl\u00fckleri\",\"malzeme temas\u0131\",\"MonkeyCache\",\"MVVM\",\"NuGet\",\"onboarding screen\",\"sqlite\",\"syncfusion\",\"xamarin\",\"xamarin.android\",\"xamarin.forms\"],\"articleSection\":[\"Turkish\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/\",\"url\":\"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/\",\"name\":\"Algoritamalar\u0131n Karma\u015f\u0131kl\u0131k Analizi \u2013 Complexity Analysis - Serkan Seker TR\",\"isPartOf\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/09\/Algoritmalarda-best-case-worst-case-ve-average-case.jpg\",\"datePublished\":\"2021-09-05T10:38:17+00:00\",\"author\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5\"},\"breadcrumb\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/#primaryimage\",\"url\":\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/09\/Algoritmalarda-best-case-worst-case-ve-average-case.jpg\",\"contentUrl\":\"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/09\/Algoritmalarda-best-case-worst-case-ve-average-case.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/serkanseker.com\/tr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Algoritamalar\u0131n Karma\u015f\u0131kl\u0131k Analizi \u2013 Complexity Analysis\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/serkanseker.com\/tr\/#website\",\"url\":\"https:\/\/serkanseker.com\/tr\/\",\"name\":\"Serkan Seker TR\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/serkanseker.com\/tr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5\",\"name\":\"serkanadmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/93ddc1f96117bf468976afe93a077eda77de96bcdb48dc749903598a546786a3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/93ddc1f96117bf468976afe93a077eda77de96bcdb48dc749903598a546786a3?s=96&d=mm&r=g\",\"caption\":\"serkanadmin\"},\"sameAs\":[\"https:\/\/serkanseker.com\"],\"url\":\"https:\/\/serkanseker.com\/tr\/author\/serkanadmin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Algoritamalar\u0131n Karma\u015f\u0131kl\u0131k Analizi \u2013 Complexity Analysis - Serkan Seker TR","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Algoritamalar\u0131n Karma\u015f\u0131kl\u0131k Analizi \u2013 Complexity Analysis - Serkan Seker TR","og_description":"\u00d6nceki makalelerimden birinde algoritmalara k\u0131sa bir giri\u015f yapm\u0131\u015ft\u0131m. Bu makalede ise algoritmalar\u0131n karma\u015f\u0131kl\u0131k analizi nedir sorusuna birlikte yan\u0131t arayaca\u011f\u0131z. Algoritmalar\u0131n karma\u015f\u0131kl\u0131k analizi , bir algoritman\u0131n \u00e7al","og_url":"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/","og_site_name":"Serkan Seker TR","article_published_time":"2021-09-05T10:38:17+00:00","og_image":[{"url":"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/09\/Algoritmalarda-best-case-worst-case-ve-average-case.jpg","type":"","width":"","height":""}],"author":"serkanadmin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"serkanadmin","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/#article","isPartOf":{"@id":"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/"},"author":{"name":"serkanadmin","@id":"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5"},"headline":"Algoritamalar\u0131n Karma\u015f\u0131kl\u0131k Analizi \u2013 Complexity Analysis","datePublished":"2021-09-05T10:38:17+00:00","mainEntityOfPage":{"@id":"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/"},"wordCount":1673,"commentCount":0,"image":{"@id":"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/#primaryimage"},"thumbnailUrl":"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/09\/Algoritmalarda-best-case-worst-case-ve-average-case.jpg","keywords":[".net maui","algoritma","DependencyService","giri\u015f ekran\u0131","kaynak s\u00f6zl\u00fckleri","malzeme temas\u0131","MonkeyCache","MVVM","NuGet","onboarding screen","sqlite","syncfusion","xamarin","xamarin.android","xamarin.forms"],"articleSection":["Turkish"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/","url":"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/","name":"Algoritamalar\u0131n Karma\u015f\u0131kl\u0131k Analizi \u2013 Complexity Analysis - Serkan Seker TR","isPartOf":{"@id":"https:\/\/serkanseker.com\/tr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/#primaryimage"},"image":{"@id":"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/#primaryimage"},"thumbnailUrl":"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/09\/Algoritmalarda-best-case-worst-case-ve-average-case.jpg","datePublished":"2021-09-05T10:38:17+00:00","author":{"@id":"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5"},"breadcrumb":{"@id":"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/#primaryimage","url":"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/09\/Algoritmalarda-best-case-worst-case-ve-average-case.jpg","contentUrl":"https:\/\/www.serkanseker.com\/tr\/wp-content\/uploads\/2021\/09\/Algoritmalarda-best-case-worst-case-ve-average-case.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/serkanseker.com\/tr\/algoritama-karmasiklik-analizi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/serkanseker.com\/tr\/"},{"@type":"ListItem","position":2,"name":"Algoritamalar\u0131n Karma\u015f\u0131kl\u0131k Analizi \u2013 Complexity Analysis"}]},{"@type":"WebSite","@id":"https:\/\/serkanseker.com\/tr\/#website","url":"https:\/\/serkanseker.com\/tr\/","name":"Serkan Seker TR","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/serkanseker.com\/tr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5","name":"serkanadmin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/93ddc1f96117bf468976afe93a077eda77de96bcdb48dc749903598a546786a3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/93ddc1f96117bf468976afe93a077eda77de96bcdb48dc749903598a546786a3?s=96&d=mm&r=g","caption":"serkanadmin"},"sameAs":["https:\/\/serkanseker.com"],"url":"https:\/\/serkanseker.com\/tr\/author\/serkanadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/posts\/5016","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/comments?post=5016"}],"version-history":[{"count":0,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/posts\/5016\/revisions"}],"wp:attachment":[{"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/media?parent=5016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/categories?post=5016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/tags?post=5016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}