{"id":114,"date":"2023-11-11T02:10:10","date_gmt":"2023-11-10T23:10:10","guid":{"rendered":"http:\/\/www.cuneytbayrak.com\/?p=114"},"modified":"2025-02-21T00:45:14","modified_gmt":"2025-02-20T21:45:14","slug":"ara-deger-arama-algoritmasi-interpolation-search","status":"publish","type":"post","link":"http:\/\/www.cuneytbayrak.com\/?p=114","title":{"rendered":"Ara De\u011fer Arama Algoritmas\u0131 (Interpolation Search)"},"content":{"rendered":"<p>Interpolation Search algoritmas\u0131 Binary Search algoritmas\u0131n\u0131n modifiye edilmi\u015f halidir diyebiliriz. Binary Search\u2019te algoritma, arama yap\u0131lan listenin ortas\u0131na gider.(n\/2)\u00a0 Interpolation Search\u2019te ise Binary Search\u2019te her ad\u0131mda gidilen ortanca index, bir form\u00fcl yard\u0131m\u0131yla belirlenir. Bu i\u015flemle daha az ad\u0131mda aranan de\u011feri bulmak hedeflenir.<\/p>\n<p>Ortanca de\u011feri hesaplamak i\u00e7in \u015fu form\u00fcl kullan\u0131lmaktad\u0131r;<\/p>\n<p><a href=\"http:\/\/www.cuneytbayrak.com\/wp-content\/uploads\/2025\/02\/interpolationarraysample.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-115 size-full\" src=\"http:\/\/www.cuneytbayrak.com\/wp-content\/uploads\/2025\/02\/interpolationarraysample.jpg\" alt=\"\" width=\"843\" height=\"85\" srcset=\"http:\/\/www.cuneytbayrak.com\/wp-content\/uploads\/2025\/02\/interpolationarraysample.jpg 843w, http:\/\/www.cuneytbayrak.com\/wp-content\/uploads\/2025\/02\/interpolationarraysample-300x30.jpg 300w, http:\/\/www.cuneytbayrak.com\/wp-content\/uploads\/2025\/02\/interpolationarraysample-768x77.jpg 768w\" sizes=\"auto, (max-width: 843px) 100vw, 843px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>orta = sol + ((x \u2013 a[sol]) * ( sag \u2013 sol) ) \/ ( a[sag] \u2013 a[sol])<\/p>\n<p>sol : dizinin sol taraf indis de\u011feri<\/p>\n<p>sa\u011f : dizinin sa\u011f taraf indis de\u011feri<\/p>\n<p>a[sol] : sol indisli de\u011fer<\/p>\n<p>a[sa\u011f] : sa\u011f indisli de\u011fer<\/p>\n<p>x : aranan de\u011fer<\/p>\n<p>Burada dikkat edilmesi gereken nokta arama yap\u0131lacak dizi elemanlar\u0131n\u0131n da\u011f\u0131l\u0131m\u0131 y=a*x+b \u015feklinde ne kadar lineer bir da\u011f\u0131l\u0131m g\u00f6sterir ise bu algoritman\u0131n o kadar h\u0131zl\u0131 sonu\u00e7 verece\u011fidir.<\/p>\n<p>A\u015fa\u011f\u0131da ki python kodlar\u0131n\u0131 inceleyip denemeler yaparsan\u0131z a[i]=2*i+7 \u015feklinde dizinin elemanlar\u0131 olu\u015fturuldu\u011fu i\u00e7in sonucun ne kadar h\u0131zl\u0131 bulundu\u011funu g\u00f6receksiniz. Oysa a[i]=2*i*i+7*i+5 \u015feklinde dizinin elemanlar\u0131 olu\u015fturulsa idi sonu\u00e7 \u00e7ok daha zaman alacakt\u0131. Binary Search daha h\u0131zl\u0131 yan\u0131t bile verebilir bu durumda. Binary ve interpolation search algoritmalar\u0131n\u0131 kar\u015f\u0131la\u015ft\u0131ran\u00a0<a href=\"https:\/\/web.archive.org\/web\/20231210013419\/http:\/\/cuneytbayrak.com\/arsivler\/1198\" target=\"_blank\" rel=\"noopener\">\u015fu yaz\u0131m\u0131<\/a>\u00a0okuman\u0131zda fayda var.<\/p>\n<div class=\"wp-block-codemirror-blocks code-block \">\n<pre class=\"CodeMirror\" data-setting=\"{&quot;mode&quot;:&quot;python&quot;,&quot;mime&quot;:&quot;text\/x-python&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:true,&quot;lineWrapping&quot;:false,&quot;styleActiveLine&quot;:false,&quot;readOnly&quot;:true,&quot;align&quot;:&quot;&quot;}\"># ikili arama algoritmas\u0131\r\nprint(\"Dizinin eleman say\u0131s\u0131n\u0131 giriniz.\")\r\nn = int(input())\r\na = [0] * (n)\r\n \r\nfor i in range(0, n - 1 + 1, 1):\r\na[i] = 2 * i + 7\r\nprint(\"Dizinin i\u00e7inde aramak istedi\u011fniz bir de\u011fer giriniz.\")\r\nx = int(input())\r\nsayac = 0\r\nilk = 0\r\nson = n - 1\r\nif x &lt; a[ilk]:\r\nprint(\"Aranan de\u011fer dizide bulunmamaktad\u0131r.\")\r\nelse:\r\no = ilk + int(((x - a[ilk]) * (son - ilk)) \/ (a[son] - a[ilk]))\r\nwhile x != a[o] and son - o &gt; 1:\r\nif x &lt; a[o]:\r\nson = o\r\no = ilk + int(((x - a[ilk]) * (son - ilk)) \/ (a[son] - a[ilk]))\r\nelse:\r\nilk = o\r\no = ilk + int(((x - a[ilk]) * (son - ilk)) \/ (a[son] - a[ilk]))\r\nsayac = sayac + 1\r\nif x == a[ilk]:\r\nprint(\"Aranan \" + str(x) + \" de\u011feri dizinin i\u00e7indedir, \" + str(ilk) + \" indis de\u011ferli say\u0131ya e\u015fittir.\" + \" \" + str(sayac) + \" kere arama yap\u0131ld\u0131\")\r\nelse:\r\nif x == a[son]:\r\nprint(\"Aranan \" + str(x) + \" de\u011feri dizinin i\u00e7indedir, \" + str(son) + \" indis de\u011ferli say\u0131ya e\u015fittir.\" + \" \" + str(sayac) + \" kere arama yap\u0131ld\u0131\")\r\nelse:\r\nif x == a[o]:\r\nprint(\"Aranan \" + str(x) + \" de\u011feri dizinin i\u00e7indedir, \" + str(o) + \" indis de\u011ferli say\u0131ya e\u015fittir.\" + \" \" + str(sayac) + \" kere arama yap\u0131ld\u0131\")\r\nelse:\r\nprint(\"Aranan de\u011fer dizide bulunmamaktad\u0131r.\")<\/pre>\n<\/div>\n<p><a href=\"http:\/\/www.flowgorithm.org\/download\/index.html\" target=\"_blank\" rel=\"noopener\">Flowgorithm<\/a> uygulamas\u0131 ile bu chart\u0131 test edebilirsiniz.<\/p>\n<p>Ayr\u0131ca program\u0131n tamam\u0131n\u0131 da\u00a0<a href=\"http:\/\/cuneytbayrak.com\/wp-content\/uploads\/2025\/02\/interpolationsearch.rar\" target=\"_blank\" rel=\"noopener\">buradan\u00a0<\/a>indirebilirsiniz.<\/p>\n<p><em><strong>Not: Kodda \u00f6nemli bir hatay\u0131 bulup d\u00fczeltme yapt\u0131\u011f\u0131 i\u00e7in Marziye han\u0131ma te\u015fekk\u00fcr ederim.<\/strong><\/em><\/p>\n<p>&nbsp;<\/p>\n<p>Kolay gele&#8230;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Interpolation Search algoritmas\u0131 Binary Search algoritmas\u0131n\u0131n modifiye edilmi\u015f halidir diyebiliriz. Binary Search\u2019te algoritma, arama yap\u0131lan listenin ortas\u0131na gider.(n\/2)\u00a0 Interpolation Search\u2019te ise Binary Search\u2019te her ad\u0131mda gidilen ortanca index, bir form\u00fcl&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"http:\/\/www.cuneytbayrak.com\/?p=114\">Devam\u0131n\u0131 Oku<span class=\"screen-reader-text\">Ara De\u011fer Arama Algoritmas\u0131 (Interpolation Search)<\/span><\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":5,"footnotes":""},"categories":[2],"tags":[32],"class_list":["post-114","post","type-post","status-publish","format-standard","hentry","category-algoritmalar","tag-interpolationsearch","excerpt"],"_links":{"self":[{"href":"http:\/\/www.cuneytbayrak.com\/index.php?rest_route=\/wp\/v2\/posts\/114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.cuneytbayrak.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.cuneytbayrak.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.cuneytbayrak.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.cuneytbayrak.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=114"}],"version-history":[{"count":1,"href":"http:\/\/www.cuneytbayrak.com\/index.php?rest_route=\/wp\/v2\/posts\/114\/revisions"}],"predecessor-version":[{"id":116,"href":"http:\/\/www.cuneytbayrak.com\/index.php?rest_route=\/wp\/v2\/posts\/114\/revisions\/116"}],"wp:attachment":[{"href":"http:\/\/www.cuneytbayrak.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.cuneytbayrak.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=114"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.cuneytbayrak.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}