{"id":32358,"date":"2025-10-20T21:42:12","date_gmt":"2025-10-20T18:42:12","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=32358"},"modified":"2025-10-20T21:42:12","modified_gmt":"2025-10-20T18:42:12","slug":"giris-siralama-algoritmalarina-ilk-adim","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/","title":{"rendered":"Giri\u015f: S\u0131ralama Algoritmalar\u0131na \u0130lk Ad\u0131m"},"content":{"rendered":"<p><body><\/p>\n<h2>Giri\u015f: S\u0131ralama Algoritmalar\u0131na \u0130lk Ad\u0131m<\/h2>\n<p>Veri i\u015fleme ve depolama d\u00fcnyas\u0131nda, verileri d\u00fczenlemek ve organize etmek temel bir ihtiya\u00e7t\u0131r. Bu d\u00fczenleme i\u015fleminin en yayg\u0131n bi\u00e7imlerinden biri &#8220;s\u0131ralama&#8221;d\u0131r. S\u0131ralama, bir veri k\u00fcmesindeki elemanlar\u0131 belirli bir d\u00fczene (genellikle artan veya azalan) g\u00f6re yeniden d\u00fczenleme i\u015flemidir. Bu rehberde, programlamaya yeni ba\u015flayanlar i\u00e7in en temel ve \u00f6\u011fretici s\u0131ralama algoritmalar\u0131n\u0131 JavaScript dilinde ele alaca\u011f\u0131z: Kabarc\u0131k S\u0131ralama (Bubble Sort), Se\u00e7meli S\u0131ralama (Selection Sort) ve Eklemeli S\u0131ralama (Insertion Sort).<\/p>\n<p>Bu algoritmalar, \u00e7o\u011fu durumda do\u011frudan b\u00fcy\u00fck \u00f6l\u00e7ekli uygulamalarda kullan\u0131lmasalar da, bilgisayar bilimleri temellerini anlamak, algoritma mant\u0131\u011f\u0131n\u0131 kavramak ve problem \u00e7\u00f6zme yetene\u011finizi geli\u015ftirmek i\u00e7in paha bi\u00e7ilmezdir. Her bir algoritman\u0131n nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131, JavaScript&#8217;te nas\u0131l kodland\u0131\u011f\u0131n\u0131 ve ne zaman faydal\u0131 olabilece\u011fini ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<h2>Kabarc\u0131k S\u0131ralama (Bubble Sort)<\/h2>\n<h3>Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/h3>\n<p>Kabarc\u0131k S\u0131ralama, ad\u0131n\u0131, dizideki en b\u00fcy\u00fck veya en k\u00fc\u00e7\u00fck elemanlar\u0131n t\u0131pk\u0131 su i\u00e7indeki kabarc\u0131klar gibi yava\u015f\u00e7a do\u011fru pozisyonlar\u0131na &#8220;y\u00fckselmesinden&#8221; al\u0131r. Bu algoritma, diziyi defalarca tarar ve her taramada yan yana duran iki eleman\u0131 kar\u015f\u0131la\u015ft\u0131r\u0131r. E\u011fer elemanlar yanl\u0131\u015f s\u0131radaysa, yerlerini de\u011fi\u015ftirir. Bu i\u015flem, dizi tamamen s\u0131ralan\u0131ncaya kadar tekrarlan\u0131r.<\/p>\n<h3>Ad\u0131m Ad\u0131m A\u00e7\u0131klama<\/h3>\n<p>Bir [5, 1, 4, 2, 8] dizisini artan \u015fekilde s\u0131ralamak istedi\u011fimizi d\u00fc\u015f\u00fcnelim:<\/p>\n<ol>\n<li><strong>\u0130lk Ge\u00e7i\u015f:<\/strong>\n<ul>\n<li>(5, 1) kar\u015f\u0131la\u015ft\u0131r\u0131l\u0131r ve yer de\u011fi\u015ftirir -> [1, 5, 4, 2, 8]<\/li>\n<li>(5, 4) kar\u015f\u0131la\u015ft\u0131r\u0131l\u0131r ve yer de\u011fi\u015ftirir -> [1, 4, 5, 2, 8]<\/li>\n<li>(5, 2) kar\u015f\u0131la\u015ft\u0131r\u0131l\u0131r ve yer de\u011fi\u015ftirir -> [1, 4, 2, 5, 8]<\/li>\n<li>(5, 8) kar\u015f\u0131la\u015ft\u0131r\u0131l\u0131r, yer de\u011fi\u015ftirmez -> [1, 4, 2, 5, 8]<\/li>\n<li>Bu ge\u00e7i\u015f sonunda en b\u00fcy\u00fck eleman (8) do\u011fru yerine (en sona) gelmi\u015f olur.<\/li>\n<\/ul>\n<\/li>\n<li><strong>\u0130kinci Ge\u00e7i\u015f (son eleman hari\u00e7):<\/strong>\n<ul>\n<li>(1, 4) kar\u015f\u0131la\u015ft\u0131r\u0131l\u0131r, yer de\u011fi\u015ftirmez -> [1, 4, 2, 5, 8]<\/li>\n<li>(4, 2) kar\u015f\u0131la\u015ft\u0131r\u0131l\u0131r ve yer de\u011fi\u015ftirir -> [1, 2, 4, 5, 8]<\/li>\n<li>(4, 5) kar\u015f\u0131la\u015ft\u0131r\u0131l\u0131r, yer de\u011fi\u015ftirmez -> [1, 2, 4, 5, 8]<\/li>\n<li>Bu ge\u00e7i\u015f sonunda ikinci en b\u00fcy\u00fck eleman (5) do\u011fru yerine gelmi\u015f olur.<\/li>\n<\/ul>\n<\/li>\n<li>\u0130\u015flem, dizi tamamen s\u0131ralanana kadar devam eder.<\/li>\n<\/ol>\n<h3>JavaScript Kodu<\/h3>\n<pre><code class=\"language-javascript\">function bubbleSort(arr) {\n    let n = arr.length;\n    let swapped; \/\/ Optimizasyon: E\u011fer bir ge\u00e7i\u015fte hi\u00e7 yer de\u011fi\u015ftirme olmazsa, dizi s\u0131ralanm\u0131\u015ft\u0131r.\n\n    for (let i = 0; i < n - 1; i++) {\n        swapped = false;\n        \/\/ Her ge\u00e7i\u015fte en b\u00fcy\u00fck eleman sona gider, bu y\u00fczden son i eleman\u0131 kontrol etmeye gerek yok.\n        for (let j = 0; j < n - 1 - i; j++) {\n            \/\/ Yan yana iki eleman\u0131 kar\u015f\u0131la\u015ft\u0131r\n            if (arr[j] > arr[j + 1]) {\n                \/\/ E\u011fer yanl\u0131\u015f s\u0131radalarsa, yerlerini de\u011fi\u015ftir\n                let temp = arr[j];\n                arr[j] = arr[j + 1];\n                arr[j + 1] = temp;\n                swapped = true;\n            }\n        }\n        \/\/ E\u011fer bu ge\u00e7i\u015fte hi\u00e7 yer de\u011fi\u015ftirme olmad\u0131ysa, dizi zaten s\u0131ralanm\u0131\u015ft\u0131r.\n        if (!swapped) {\n            break;\n        }\n    }\n    return arr;\n}\n\nlet numbersBubble = [64, 34, 25, 12, 22, 11, 90];\nconsole.log(\"Kabarc\u0131k S\u0131ralama \u00d6ncesi:\", numbersBubble);\nconsole.log(\"Kabarc\u0131k S\u0131ralama Sonras\u0131:\", bubbleSort(numbersBubble)); \/\/ \u00c7\u0131kt\u0131: [11, 12, 22, 25, 34, 64, 90]\n<\/code><\/pre>\n<h3>Avantajlar\u0131 ve Dezavantajlar\u0131<\/h3>\n<ul>\n<li><strong>Avantajlar\u0131:<\/strong> Anlamas\u0131 ve uygulamas\u0131 \u00e7ok kolayd\u0131r.<\/li>\n<li><strong>Dezavantajlar\u0131:<\/strong> B\u00fcy\u00fck veri k\u00fcmeleri i\u00e7in son derece verimsizdir. Performans\u0131 O(n^2) karma\u015f\u0131kl\u0131\u011f\u0131na sahiptir, yani eleman say\u0131s\u0131 artt\u0131k\u00e7a \u00e7al\u0131\u015fma s\u00fcresi karesel olarak artar. Pratik uygulamalarda neredeyse hi\u00e7 kullan\u0131lmaz.<\/li>\n<\/ul>\n<h3>Ne Zaman Kullan\u0131l\u0131r?<\/h3>\n<p>\u00c7ok k\u00fc\u00e7\u00fck veri k\u00fcmeleri i\u00e7in veya sadece e\u011fitim ama\u00e7l\u0131 olarak kullan\u0131labilir. Ger\u00e7ek d\u00fcnya uygulamalar\u0131nda nadiren tercih edilir.<\/p>\n<h2>Se\u00e7meli S\u0131ralama (Selection Sort)<\/h2>\n<h3>Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/h3>\n<p>Se\u00e7meli S\u0131ralama, diziyi iki par\u00e7aya ay\u0131rarak \u00e7al\u0131\u015f\u0131r: s\u0131ralanm\u0131\u015f k\u0131s\u0131m ve s\u0131ralanmam\u0131\u015f k\u0131s\u0131m. Algoritma, s\u0131ralanmam\u0131\u015f k\u0131s\u0131mdan en k\u00fc\u00e7\u00fck (veya en b\u00fcy\u00fck) eleman\u0131 bulur ve onu s\u0131ralanm\u0131\u015f k\u0131sm\u0131n sonuna yerle\u015ftirir. Bu i\u015flem, t\u00fcm dizi s\u0131ralanana kadar devam eder.<\/p>\n<h3>Ad\u0131m Ad\u0131m A\u00e7\u0131klama<\/h3>\n<p>Bir [64, 25, 12, 22, 11] dizisini artan \u015fekilde s\u0131ralamak istedi\u011fimizi d\u00fc\u015f\u00fcnelim:<\/p>\n<ol>\n<li><strong>\u0130lk Ge\u00e7i\u015f:<\/strong>\n<ul>\n<li>Dizideki en k\u00fc\u00e7\u00fck eleman\u0131 bul (11).<\/li>\n<li>En k\u00fc\u00e7\u00fck eleman\u0131 (11) dizinin ilk eleman\u0131yla (64) yer de\u011fi\u015ftir. -> [11, 25, 12, 22, 64]<\/li>\n<li>Art\u0131k 11 s\u0131ralanm\u0131\u015f k\u0131sm\u0131n bir par\u00e7as\u0131d\u0131r.<\/li>\n<\/ul>\n<\/li>\n<li><strong>\u0130kinci Ge\u00e7i\u015f (ilk eleman hari\u00e7):<\/strong>\n<ul>\n<li>Kalan dizideki [25, 12, 22, 64] en k\u00fc\u00e7\u00fck eleman\u0131 bul (12).<\/li>\n<li>En k\u00fc\u00e7\u00fck eleman\u0131 (12) s\u0131ralanmam\u0131\u015f k\u0131sm\u0131n ilk eleman\u0131yla (25) yer de\u011fi\u015ftir. -> [11, 12, 25, 22, 64]<\/li>\n<li>Art\u0131k 12 de s\u0131ralanm\u0131\u015f k\u0131sm\u0131n bir par\u00e7as\u0131d\u0131r.<\/li>\n<\/ul>\n<\/li>\n<li>\u0130\u015flem, t\u00fcm dizi s\u0131ralanana kadar devam eder.<\/li>\n<\/ol>\n<h3>JavaScript Kodu<\/h3>\n<pre><code class=\"language-javascript\">function selectionSort(arr) {\n    let n = arr.length;\n\n    for (let i = 0; i < n - 1; i++) {\n        \/\/ Mevcut ge\u00e7i\u015fte en k\u00fc\u00e7\u00fck eleman\u0131n indeksini bul\n        let minIndex = i;\n        for (let j = i + 1; j < n; j++) {\n            if (arr[j] < arr[minIndex]) {\n                minIndex = j;\n            }\n        }\n\n        \/\/ Bulunan en k\u00fc\u00e7\u00fck eleman\u0131 mevcut pozisyonla yer de\u011fi\u015ftir\n        \/\/ Sadece farkl\u0131 bir eleman bulunursa yer de\u011fi\u015ftirme yap\n        if (minIndex !== i) {\n            let temp = arr[i];\n            arr[i] = arr[minIndex];\n            arr[minIndex] = temp;\n        }\n    }\n    return arr;\n}\n\nlet numbersSelection = [64, 25, 12, 22, 11];\nconsole.log(\"Se\u00e7meli S\u0131ralama \u00d6ncesi:\", numbersSelection);\nconsole.log(\"Se\u00e7meli S\u0131ralama Sonras\u0131:\", selectionSort(numbersSelection)); \/\/ \u00c7\u0131kt\u0131: [11, 12, 22, 25, 64]\n<\/code><\/pre>\n<h3>Avantajlar\u0131 ve Dezavantajlar\u0131<\/h3>\n<ul>\n<li><strong>Avantajlar\u0131:<\/strong> Her ge\u00e7i\u015fte sadece bir yer de\u011fi\u015ftirme (swap) i\u015flemi yapar, bu da bellek yazma i\u015flemlerinin maliyetli oldu\u011fu durumlarda faydal\u0131 olabilir. Anlamas\u0131 yine nispeten kolayd\u0131r.<\/li>\n<li><strong>Dezavantajlar\u0131:<\/strong> Kabarc\u0131k S\u0131ralama gibi, performans\u0131 O(n^2) karma\u015f\u0131kl\u0131\u011f\u0131na sahiptir. Yani b\u00fcy\u00fck veri k\u00fcmeleri i\u00e7in verimli de\u011fildir.<\/li>\n<\/ul>\n<h3>Ne Zaman Kullan\u0131l\u0131r?<\/h3>\n<p>K\u00fc\u00e7\u00fck veri k\u00fcmeleri i\u00e7in uygundur. \u00d6zellikle yer de\u011fi\u015ftirme (swap) say\u0131s\u0131n\u0131n minimize edilmesi gereken senaryolarda d\u00fc\u015f\u00fcn\u00fclebilir, ancak genel olarak daha verimli algoritmalar tercih edilir.<\/p>\n<h2>Eklemeli S\u0131ralama (Insertion Sort)<\/h2>\n<h3>Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/h3>\n<p>Eklemeli S\u0131ralama, iskambil kartlar\u0131n\u0131 elimizde s\u0131ralamaya benzer bir mant\u0131kla \u00e7al\u0131\u015f\u0131r. Diziyi ad\u0131m ad\u0131m in\u015fa edilmi\u015f s\u0131ral\u0131 bir alt dizi olarak d\u00fc\u015f\u00fcn\u00fcr. Her ad\u0131mda, s\u0131ralanmam\u0131\u015f k\u0131s\u0131mdan bir eleman al\u0131r ve onu s\u0131ral\u0131 alt dizideki do\u011fru konumuna ekler. Bu i\u015flem, t\u00fcm elemanlar s\u0131ral\u0131 alt diziye eklenene kadar devam eder.<\/p>\n<h3>Ad\u0131m Ad\u0131m A\u00e7\u0131klama<\/h3>\n<p>Bir [12, 11, 13, 5, 6] dizisini artan \u015fekilde s\u0131ralamak istedi\u011fimizi d\u00fc\u015f\u00fcnelim:<\/p>\n<ol>\n<li><strong>Ba\u015flang\u0131\u00e7:<\/strong> [12 | 11, 13, 5, 6] (12 s\u0131ral\u0131 kabul edilir)<\/li>\n<li><strong>\u0130kinci Eleman (11):<\/strong>\n<ul>\n<li>11'i al\u0131r\u0131z. 12'den k\u00fc\u00e7\u00fckt\u00fcr.<\/li>\n<li>12'yi sa\u011fa kayd\u0131r\u0131r\u0131z ve 11'i yerine koyar\u0131z. -> [11, 12 | 13, 5, 6]<\/li>\n<\/ul>\n<\/li>\n<li><strong>\u00dc\u00e7\u00fcnc\u00fc Eleman (13):<\/strong>\n<ul>\n<li>13'\u00fc al\u0131r\u0131z. 12'den b\u00fcy\u00fckt\u00fcr, do\u011fru yerdedir. -> [11, 12, 13 | 5, 6]<\/li>\n<\/ul>\n<\/li>\n<li><strong>D\u00f6rd\u00fcnc\u00fc Eleman (5):<\/strong>\n<ul>\n<li>5'i al\u0131r\u0131z. 13'ten k\u00fc\u00e7\u00fck, 12'den k\u00fc\u00e7\u00fck, 11'den k\u00fc\u00e7\u00fck.<\/li>\n<li>13, 12, 11'i birer sa\u011fa kayd\u0131r\u0131r\u0131z ve 5'i en ba\u015fa koyar\u0131z. -> [5, 11, 12, 13 | 6]<\/li>\n<\/ul>\n<\/li>\n<li><strong>Be\u015finci Eleman (6):<\/strong>\n<ul>\n<li>6'y\u0131 al\u0131r\u0131z. 13'ten k\u00fc\u00e7\u00fck, 12'den k\u00fc\u00e7\u00fck, 11'den k\u00fc\u00e7\u00fck, ama 5'ten b\u00fcy\u00fck.<\/li>\n<li>13, 12, 11'i birer sa\u011fa kayd\u0131r\u0131r\u0131z ve 6'y\u0131 5'in sa\u011f\u0131na yerle\u015ftiririz. -> [5, 6, 11, 12, 13]<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3>JavaScript Kodu<\/h3>\n<pre><code class=\"language-javascript\">function insertionSort(arr) {\n    let n = arr.length;\n\n    \/\/ Dizinin ikinci eleman\u0131ndan ba\u015fla, \u00e7\u00fcnk\u00fc ilk eleman\u0131 s\u0131ral\u0131 kabul ederiz.\n    for (let i = 1; i < n; i++) {\n        let currentElement = arr[i]; \/\/ S\u0131ral\u0131 k\u0131sma eklenecek eleman\n        let j = i - 1; \/\/ S\u0131ral\u0131 k\u0131sm\u0131n son eleman\u0131n\u0131n indeksi\n\n        \/\/ currentElement'i s\u0131ral\u0131 k\u0131s\u0131mda do\u011fru yerine bulana kadar geriye do\u011fru tarar\n        \/\/ ve b\u00fcy\u00fck elemanlar\u0131 bir pozisyon sa\u011fa kayd\u0131r\u0131r\n        while (j >= 0 && arr[j] > currentElement) {\n            arr[j + 1] = arr[j];\n            j--;\n        }\n        \/\/ currentElement'i do\u011fru pozisyonuna yerle\u015ftir\n        arr[j + 1] = currentElement;\n    }\n    return arr;\n}\n\nlet numbersInsertion = [12, 11, 13, 5, 6];\nconsole.log(\"Eklemeli S\u0131ralama \u00d6ncesi:\", numbersInsertion);\nconsole.log(\"Eklemeli S\u0131ralama Sonras\u0131:\", insertionSort(numbersInsertion)); \/\/ \u00c7\u0131kt\u0131: [5, 6, 11, 12, 13]\n<\/code><\/pre>\n<h3>Avantajlar\u0131 ve Dezavantajlar\u0131<\/h3>\n<ul>\n<li><strong>Avantajlar\u0131:<\/strong> K\u00fc\u00e7\u00fck veri k\u00fcmeleri i\u00e7in veya neredeyse s\u0131ral\u0131 olan diziler i\u00e7in olduk\u00e7a verimlidir (bu durumda O(n) karma\u015f\u0131kl\u0131\u011fa yakla\u015f\u0131r). Algoritma stabil bir s\u0131ralama y\u00f6ntemidir (yani ayn\u0131 de\u011fere sahip elemanlar\u0131n g\u00f6receli s\u0131ras\u0131 korunur).<\/li>\n<li><strong>Dezavantajlar\u0131:<\/strong> En k\u00f6t\u00fc durumda (dizi ters s\u0131ral\u0131ysa) performans\u0131 O(n^2)'dir, bu da b\u00fcy\u00fck veri k\u00fcmeleri i\u00e7in yine verimsiz hale getirir.<\/li>\n<\/ul>\n<h3>Ne Zaman Kullan\u0131l\u0131r?<\/h3>\n<p>K\u00fc\u00e7\u00fck boyutlu dizilerde veya zaten b\u00fcy\u00fck \u00f6l\u00e7\u00fcde s\u0131ralanm\u0131\u015f dizilerde iyi performans g\u00f6sterir. Ayr\u0131ca, verinin \"online\" olarak geldi\u011fi ve her yeni eleman\u0131n mevcut s\u0131ral\u0131 listeye eklenmesi gerekti\u011fi durumlarda da kullan\u0131labilir.<\/p>\n<h2>Performans Kar\u015f\u0131la\u015ft\u0131rmas\u0131 ve Pratik Bilgiler<\/h2>\n<h3>B\u00fcy\u00fck O Notasyonu (Big O Notation)<\/h3>\n<p>Yukar\u0131da inceledi\u011fimiz her \u00fc\u00e7 algoritma da \"O(n^2)\" zaman karma\u015f\u0131kl\u0131\u011f\u0131na sahiptir. Bu ne anlama geliyor? \"n\" dizideki eleman say\u0131s\u0131n\u0131 temsil eder. O(n^2), algoritman\u0131n \u00e7al\u0131\u015fma s\u00fcresinin, eleman say\u0131s\u0131n\u0131n karesiyle orant\u0131l\u0131 olarak artt\u0131\u011f\u0131n\u0131 g\u00f6sterir. Yani, 10 elemanl\u0131 bir dizide 100 birim i\u015f yaparken, 100 elemanl\u0131 bir dizide 10.000 birim i\u015f yapabilir. Bu, eleman say\u0131s\u0131 artt\u0131k\u00e7a performans\u0131n \u00e7ok h\u0131zl\u0131 bir \u015fekilde d\u00fc\u015ft\u00fc\u011f\u00fc anlam\u0131na gelir.<\/p>\n<p>Modern uygulamalarda ve b\u00fcy\u00fck veri k\u00fcmelerinde O(n log n) gibi daha verimli algoritmalar (\u00f6rne\u011fin Merge Sort, Quick Sort, Heap Sort) tercih edilir. Bu algoritmalar, eleman say\u0131s\u0131 artt\u0131k\u00e7a \u00e7ok daha iyi performans g\u00f6sterirler.<\/p>\n<h3>Ger\u00e7ek D\u00fcnya Senaryolar\u0131<\/h3>\n<p>Ger\u00e7ek d\u00fcnya uygulamalar\u0131nda, JavaScript'in yerle\u015fik <code>Array.prototype.sort()<\/code> metodu genellikle bu temel algoritmalar\u0131n \u00e7ok daha optimize edilmi\u015f versiyonlar\u0131n\u0131 (\u00e7o\u011funlukla Timsort veya Quicksort'un modifiye edilmi\u015f versiyonlar\u0131) kullan\u0131r. Bu nedenle, \u00e7o\u011fu zaman kendi s\u0131ralama algoritmalar\u0131n\u0131z\u0131 yazmak yerine <code>Array.prototype.sort()<\/code> kullanmak en iyi performans\u0131 ve g\u00fcvenilirli\u011fi sa\u011flar.<\/p>\n<pre><code class=\"language-javascript\">let arr = [64, 34, 25, 12, 22, 11, 90];\narr.sort((a, b) => a - b); \/\/ Artan s\u0131ralama\nconsole.log(\"Array.prototype.sort() ile S\u0131ralama:\", arr); \/\/ \u00c7\u0131kt\u0131: [11, 12, 22, 25, 34, 64, 90]\n<\/code><\/pre>\n<h3>Neden \u00d6\u011frenmeliyiz?<\/h3>\n<p>Madem JavaScript'in kendi s\u0131ralama metodu var, neden bu temel algoritmalar\u0131 \u00f6\u011frenmeliyiz?<\/p>\n<ul>\n<li><strong>Temel Anlay\u0131\u015f:<\/strong> Algoritmalar\u0131n nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 anlamak, daha karma\u015f\u0131k veri yap\u0131lar\u0131 ve algoritmalar hakk\u0131nda sa\u011flam bir temel olu\u015fturur.<\/li>\n<li><strong>Problem \u00c7\u00f6zme:<\/strong> Bu algoritmalar\u0131 yazmak, d\u00f6ng\u00fcler, ko\u015fullu ifadeler ve de\u011fi\u015fken y\u00f6netimi gibi temel programlama konseptlerini peki\u015ftirir ve problem \u00e7\u00f6zme becerilerinizi geli\u015ftirir.<\/li>\n<li><strong>M\u00fclakat Haz\u0131rl\u0131\u011f\u0131:<\/strong> Yaz\u0131l\u0131m m\u00fchendisli\u011fi m\u00fclakatlar\u0131nda s\u0131ralama algoritmalar\u0131 s\u0131kl\u0131kla sorulan konulardand\u0131r.<\/li>\n<li><strong>Performans Bilinci:<\/strong> Farkl\u0131 algoritmalar\u0131n farkl\u0131 performans \u00f6zelliklerine sahip oldu\u011funu anlamak, yaz\u0131l\u0131m geli\u015ftirirken daha bilin\u00e7li kararlar vermenizi sa\u011flar.<\/li>\n<\/ul>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h2>\n<h3>\u00d6zet<\/h3>\n<p>Bu rehberde, programlama d\u00fcnyas\u0131na ad\u0131m atanlar i\u00e7in \u00fc\u00e7 temel s\u0131ralama algoritmas\u0131n\u0131, Kabarc\u0131k S\u0131ralama, Se\u00e7meli S\u0131ralama ve Eklemeli S\u0131ralama'y\u0131 JavaScript kod \u00f6rnekleriyle birlikte detayl\u0131ca inceledik. Her bir algoritman\u0131n kendine \u00f6zg\u00fc \u00e7al\u0131\u015fma prensipleri oldu\u011funu, ancak b\u00fcy\u00fck veri k\u00fcmeleri i\u00e7in hepsinin O(n^2) zaman karma\u015f\u0131kl\u0131\u011f\u0131 nedeniyle verimsiz oldu\u011funu \u00f6\u011frendik. Bu algoritmalar do\u011frudan pratik uygulamalarda nadiren kullan\u0131lsa da, bilgisayar bilimleri temellerini kavramak ve algoritma d\u00fc\u015f\u00fcnme yetene\u011fini geli\u015ftirmek i\u00e7in kritik \u00f6neme sahiptirler.<\/p>\n<p>\u015eimdi, s\u0131ralama algoritmalar\u0131n\u0131n bu temel ta\u015flar\u0131n\u0131 anlad\u0131\u011f\u0131n\u0131za g\u00f6re, daha geli\u015fmi\u015f ve verimli algoritmalar\u0131 (Quick Sort, Merge Sort, Heap Sort gibi) ke\u015ffetmeye haz\u0131rs\u0131n\u0131z demektir. Bu yolculukta, her yeni algoritman\u0131n size farkl\u0131 bir bak\u0131\u015f a\u00e7\u0131s\u0131 sunaca\u011f\u0131n\u0131 unutmay\u0131n.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<h4>Bu algoritmalar ne kadar h\u0131zl\u0131?<\/h4>\n<p>Kabarc\u0131k S\u0131ralama, Se\u00e7meli S\u0131ralama ve Eklemeli S\u0131ralama algoritmalar\u0131n\u0131n tamam\u0131 O(n^2) zaman karma\u015f\u0131kl\u0131\u011f\u0131na sahiptir. Bu, dizideki eleman say\u0131s\u0131 (n) artt\u0131k\u00e7a, \u00e7al\u0131\u015fma s\u00fcrelerinin karesel olarak artaca\u011f\u0131 anlam\u0131na gelir. Yani b\u00fcy\u00fck veri k\u00fcmeleri i\u00e7in yava\u015ft\u0131rlar.<\/p>\n<h4>Neden <code>Array.prototype.sort()<\/code> kullanm\u0131yoruz do\u011frudan?<\/h4>\n<p>\u00c7o\u011fu durumda, evet, do\u011frudan <code>Array.prototype.sort()<\/code> kullanmal\u0131s\u0131n\u0131z. JavaScript motorlar\u0131 (\u00f6rne\u011fin V8) bu metodu \u00e7ok optimize edilmi\u015f ve genellikle O(n log n) karma\u015f\u0131kl\u0131\u011f\u0131nda \u00e7al\u0131\u015fan algoritmalarla (Timsort veya Quicksort gibi) uygular. Bu temel algoritmalar\u0131 \u00f6\u011frenmek, sadece e\u011fitim ve temel bilgisayar bilimi anlay\u0131\u015f\u0131 i\u00e7indir.<\/p>\n<h4>Hangi durumda hangi algoritmay\u0131 se\u00e7meliyim?<\/h4>\n<ul>\n<li><strong>Kabarc\u0131k S\u0131ralama:<\/strong> Neredeyse hi\u00e7. Sadece e\u011fitim ama\u00e7l\u0131 veya \u00e7ok, \u00e7ok k\u00fc\u00e7\u00fck veri setleri i\u00e7in.<\/li>\n<li><strong>Se\u00e7meli S\u0131ralama:<\/strong> Yer de\u011fi\u015ftirme (swap) say\u0131s\u0131n\u0131n kesinlikle minimize edilmesi gereken, \u00e7ok k\u00fc\u00e7\u00fck veri setleri i\u00e7in.<\/li>\n<li><strong>Eklemeli S\u0131ralama:<\/strong> K\u00fc\u00e7\u00fck veri setleri i\u00e7in, veya dizinin zaten b\u00fcy\u00fck \u00f6l\u00e7\u00fcde s\u0131ral\u0131 oldu\u011fu durumlarda olduk\u00e7a verimli olabilir. Ayr\u0131ca verinin par\u00e7a par\u00e7a gelip s\u0131ral\u0131 bir yap\u0131ya eklenmesi gereken \"online\" senaryolar i\u00e7in de uygundur.<\/li>\n<\/ul>\n<h4>S\u0131ralama algoritmalar\u0131 sadece say\u0131lar i\u00e7in mi ge\u00e7erli?<\/h4>\n<p>Hay\u0131r, s\u0131ralama algoritmalar\u0131 sadece say\u0131lar i\u00e7in de\u011fil, herhangi bir kar\u015f\u0131la\u015ft\u0131r\u0131labilir veri tipi i\u00e7in ge\u00e7erlidir. Harfler (alfabetik s\u0131ra), kelimeler, tarihler veya \u00f6zel olarak tan\u0131mlanm\u0131\u015f objeler (belli bir \u00f6zelli\u011fe g\u00f6re) de s\u0131ralanabilir. JavaScript'in <code>sort()<\/code> metodu, bir kar\u015f\u0131la\u015ft\u0131rma fonksiyonu alarak bu esnekli\u011fi sa\u011flar.<\/p>\n<h4>Stabilite ne anlama geliyor?<\/h4>\n<p>Bir s\u0131ralama algoritmas\u0131n\u0131n \"stabil\" olmas\u0131, ayn\u0131 de\u011fere sahip elemanlar\u0131n orijinal dizideki g\u00f6receli s\u0131ralar\u0131n\u0131n s\u0131ralama i\u015fleminden sonra da korunmas\u0131 anlam\u0131na gelir. \u00d6rne\u011fin, <code>[{id: 1, name: 'A'}, {id: 2, name: 'A'}]<\/code> dizisini <code>name<\/code> \u00f6zelli\u011fine g\u00f6re s\u0131ralarken, stabil bir algoritma <code>id: 1<\/code> olan eleman\u0131 <code>id: 2<\/code> olandan \u00f6nce tutacakt\u0131r. Kabarc\u0131k S\u0131ralama ve Eklemeli S\u0131ralama stabil algoritmalar iken, Se\u00e7meli S\u0131ralama stabil de\u011fildir.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Giri\u015f: S\u0131ralama Algoritmalar\u0131na \u0130lk Ad\u0131m\nVeri i\u015fleme ve depolama d\u00fcnyas\u0131nda, verileri d\u00fczenlemek ve organize etmek temel bir ihtiya\u00e7t\u0131r.","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-32358","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>Giri\u015f: S\u0131ralama Algoritmalar\u0131na \u0130lk Ad\u0131m - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\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\/giris-siralama-algoritmalarina-ilk-adim\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Giri\u015f: S\u0131ralama Algoritmalar\u0131na \u0130lk Ad\u0131m\" \/>\n<meta property=\"og:description\" content=\"Giri\u015f: S\u0131ralama Algoritmalar\u0131na \u0130lk Ad\u0131m Veri i\u015fleme ve depolama d\u00fcnyas\u0131nda, verileri d\u00fczenlemek ve organize etmek temel bir ihtiya\u00e7t\u0131r.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-20T18:42:12+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=\"12 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Giri\u015f: S\u0131ralama Algoritmalar\u0131na \u0130lk Ad\u0131m\",\"datePublished\":\"2025-10-20T18:42:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/\"},\"wordCount\":1919,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/\",\"name\":\"Giri\u015f: S\u0131ralama Algoritmalar\u0131na \u0130lk Ad\u0131m - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-20T18:42:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Giri\u015f: S\u0131ralama Algoritmalar\u0131na \u0130lk Ad\u0131m\"}]},{\"@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":"Giri\u015f: S\u0131ralama Algoritmalar\u0131na \u0130lk Ad\u0131m - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","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\/giris-siralama-algoritmalarina-ilk-adim\/","og_locale":"tr_TR","og_type":"article","og_title":"Giri\u015f: S\u0131ralama Algoritmalar\u0131na \u0130lk Ad\u0131m","og_description":"Giri\u015f: S\u0131ralama Algoritmalar\u0131na \u0130lk Ad\u0131m Veri i\u015fleme ve depolama d\u00fcnyas\u0131nda, verileri d\u00fczenlemek ve organize etmek temel bir ihtiya\u00e7t\u0131r.","og_url":"https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-20T18:42:12+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"12 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Giri\u015f: S\u0131ralama Algoritmalar\u0131na \u0130lk Ad\u0131m","datePublished":"2025-10-20T18:42:12+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/"},"wordCount":1919,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/","url":"https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/","name":"Giri\u015f: S\u0131ralama Algoritmalar\u0131na \u0130lk Ad\u0131m - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-20T18:42:12+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/giris-siralama-algoritmalarina-ilk-adim\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Giri\u015f: S\u0131ralama Algoritmalar\u0131na \u0130lk Ad\u0131m"}]},{"@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\/32358","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=32358"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32358\/revisions"}],"predecessor-version":[{"id":32359,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32358\/revisions\/32359"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=32358"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=32358"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=32358"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}