[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-baslangic-algoritmalari-bubble-sort-ve-binary-search-ornek-kodlar":3},{"dataItem":4,"heading":36,"metaData":38,"schema":81},["Reactive",5],{"id":6,"title":7,"summary":8,"content":9,"seo_title":10,"seo_description":11,"seo_keywords":12,"slug":13,"createdAt":14,"updatedAt":14,"blog_categories":15,"authors":19,"image":24,"thumb":25,"image_webp":26,"thumb_webp":27,"rating":28,"heading_title":7,"heading_sub_title":17,"readingTime":29,"url":34,"comments":35,"meta_cover":24},26316,"Başlangıç algoritmaları: Bubble sort ve binary search (örnek kodlar)","Bu makale, bubble sort ve binary search algoritmalarının temel mantığını, zaman/mekan karmaşıklıklarını ve adım adım Python örneklerini açıklayarak başlangıç seviyesindeki geliştiricilere pratik rehberlik sağlar.","\u003Ch2>Giriş\u003C/h2>\n\u003Cp>Temel algoritmalar, programlamanın yapı taşlarıdır. Bu yazıda iki temel algoritma — bubble sort (sıralama) ve binary search (arama) — ele alınacaktır. Bubble sort, ardışık elemanları karşılaştırıp gerektiğinde takas yaparak diziyi sıralarken; binary search sıralanmış dizilerde hedef elemanı hızlıca bulmak için arama alanını yarıya indirir. Tanımlar ve kısa açıklamalar için kaynaklara bakabilirsiniz: \u003Ca href=\"https://www.davutkara.com/tr/bubble-sort/\">Bubble Sort — Davut Kara\u003C/a> ve \u003Ca href=\"https://www.algopit.wiki/algorithms/sorting\">Algoritmalar İnteraktif Öğrenme Platformu (sıralama ve arama)\u003C/a>.\u003C/p>\n\n\u003Ch2>Bubble Sort: Tanım ve çalışma prensibi\u003C/h2>\n\u003Ch3>Temel fikir\u003C/h3>\n\u003Cp>Bubble sort, dizideki komşu (ardışık) elemanları karşılaştırır ve doğru sırada değilse yerlerini değiştirir. Bu karşılaştırma-takas işlemi, dizinin sonuna kadar tekrarlanır; her geçiş (pass) sonunda en büyük eleman dizinin sonuna \"kabarcık\" gibi yükselir. Bu temel tanım için kaynak: \u003Ca href=\"https://www.davutkara.com/tr/bubble-sort/\">Davut Kara - Bubble Sort\u003C/a> ve adım adım açıklamalar için örnek rehberler mevcuttur.\u003C/p>\n\n\u003Ch3>Adım adım örnek\u003C/h3>\n\u003Cp>Başlangıç dizisi: [5, 2, 1, 4, 3]\u003C/p>\n\u003Col>\n  \u003Cli>Pass 1: karşılaştırmalar sonucu dizi → [2, 1, 4, 3, 5]\u003C/li>\n  \u003Cli>Pass 2: dizi → [1, 2, 3, 4, 5]\u003C/li>\n  \u003Cli>Pass 3: zaten sıralı olduğu için değişiklik olmaz (optimizasyonla erken çıkılabilir).\u003C/li>\n\u003C/ol>\n\n\u003Ch3>Python örneği (optimize edilmiş)\u003C/h3>\n\u003Cp>\u003Cstrong>Python örneği:\u003C/strong>\u003Cbr>\ndef bubble_sort(a):\u003Cbr>\n    n = len(a)\u003Cbr>\n    for i in range(n):\u003Cbr>\n        swapped = False\u003Cbr>\n        for j in range(0, n - i - 1):\u003Cbr>\n            if a[j] > a[j+1]:\u003Cbr>\n                a[j], a[j+1] = a[j+1], a[j]\u003Cbr>\n                swapped = True\u003Cbr>\n        if not swapped:\u003Cbr>\n            break\u003Cbr>\n    return a\u003C/p>\n\n\u003Ch3>Zaman ve mekan karmaşıklığı\u003C/h3>\n\u003Cp>Genel olarak bubble sort'un zaman karmaşıklığı ortalama ve kötü durumda O(n^2)'dir; en iyi durumda (dizi zaten sıralı ve erken çıkış kullanılıyorsa) O(n) olabilir. Bellek kullanımı (mekan karmaşıklığı) sabittir, O(1), çünkü sıralama yerinde gerçekleştirilir. Bu tip karmaşıklık değerlendirmeleri ve karşılaştırmalar için kaynak: \u003Ca href=\"https://www.algopit.wiki/algorithms/sorting\">Algopit - Sıralama Algoritmaları\u003C/a>.\u003C/p>\n\n\u003Ch3>Avantajlar ve dezavantajlar\u003C/h3>\n\u003Cul>\n  \u003Cli>Avantajlar: Çok basit ve anlaşılır; küçük dizilerde veya eğitim amaçlı kullanılabilir.\u003C/li>\n  \u003Cli>Dezavantajlar: Büyük veri setlerinde verimsizdir (O(n^2)). Daha verimli sıralama algoritmaları tercih edilir.\u003C/li>\n\u003C/ul>\n\n\u003Ch2>Binary Search: Tanım ve çalışması\u003C/h2>\n\u003Ch3>Önkoşul\u003C/h3>\n\u003Cp>Binary search, yalnızca sıralanmış dizilerde (veya sıralanmış veri yapılarına erişimde) doğru çalışır. Ortadaki elemanla hedef karşılaştırılır; hedef daha küçükse sağ yarı atlanır, daha büyükse sol yarı atlanır; arama alanı yarıya indirilir. Bu çalışma şekli ve faydaları hakkında genel referans: \u003Ca href=\"https://www.algopit.wiki/algorithms/sorting\">Algopit - Arama ve Sıralama\u003C/a>.\u003C/p>\n\n\u003Ch3>Iteratif Python örneği\u003C/h3>\n\u003Cp>\u003Cstrong>Python (iteratif):\u003C/strong>\u003Cbr>\ndef binary_search(a, target):\u003Cbr>\n    low, high = 0, len(a) - 1\u003Cbr>\n    while low \u003C= high:\u003Cbr>\n        mid = (low + high) // 2\u003Cbr>\n        if a[mid] == target:\u003Cbr>\n            return mid  # bulundu — indeks döner\u003Cbr>\n        elif a[mid] \u003C target:\u003Cbr>\n            low = mid + 1\u003Cbr>\n        else:\u003Cbr>\n            high = mid - 1\u003Cbr>\n    return -1  # bulunamadı\u003C/p>\n\n\u003Ch3>Rekürsif Python örneği\u003C/h3>\n\u003Cp>\u003Cstrong>Python (rekürsif):\u003C/strong>\u003Cbr>\ndef binary_search_recursive(a, target, low, high):\u003Cbr>\n    if low > high:\u003Cbr>\n        return -1\u003Cbr>\n    mid = (low + high) // 2\u003Cbr>\n    if a[mid] == target:\u003Cbr>\n        return mid\u003Cbr>\n    elif a[mid] \u003C target:\u003Cbr>\n        return binary_search_recursive(a, target, mid + 1, high)\u003Cbr>\n    else:\u003Cbr>\n        return binary_search_recursive(a, target, low, mid - 1)\u003C/p>\n\n\u003Ch3>Zaman ve mekan karmaşıklığı\u003C/h3>\n\u003Cp>Binary search'un zaman karmaşıklığı O(log n) olarak bilinir; arama alanı her adımda yarıya indirildiği için boyut logaritmik şekilde azalır. Mekan karmaşıklığı iteratif sürüm için O(1), rekürsif sürüm için çağrı yığını nedeniyle O(log n) seviyesinde olabilir. Bu karmaşıklık bilgileri için kaynak: \u003Ca href=\"https://www.algopit.wiki/algorithms/sorting\">Algopit\u003C/a>.\u003C/p>\n\n\u003Ch3>Yaygın hatalar ve düzeltme ipuçları\u003C/h3>\n\u003Cul>\n  \u003Cli>Dizi sıralı değilse binary search yanlış sonuç verir — her zaman verinin sıralı olduğundan emin olun.\u003C/li>\n  \u003Cli>Indeks aralıkları (low/high) yanlış ayarlanırsa off-by-one (bir eksik/fazla) hataları çıkar; test veyahut açık sınır kuralları kullanın ([low, high] vs [low, high)).\u003C/li>\n  \u003Cli>Rekürsif versiyonda üst sınırların doğru geçildiğinden ve çıkış koşullarının iyi belirlendiğinden emin olun.\u003C/li>\n\u003C/ul>\n\n\u003Ch2>Bubble Sort ve Binary Search: Karşılaştırma (aynı amaçta değiller)\u003C/h2>\n\u003Cp>Önemli not: Bubble sort bir \u003Cem>sıralama\u003C/em> algoritmasıdır; binary search ise bir \u003Cem>arama\u003C/em> algoritmasıdır. Bu yüzden doğrudan \"hangisi daha iyi?\" sorusu anlamsız olabilir. Karşılaştırma yapılacaksa amaç ve bağlam düşünülmelidir:\u003C/p>\n\u003Cul>\n  \u003Cli>Bubble sort: Küçük veri setlerini sıralamak ve eğitim amaçlı kullanışlıdır. Zaman karmaşıklığı O(n^2) olduğundan büyük veriler için önerilmez (\u003Ca href=\"https://www.algopit.wiki/algorithms/sorting\">Algopit\u003C/a>, \u003Ca href=\"https://www.davutkara.com/tr/bubble-sort/\">Davut Kara\u003C/a>).\u003C/li>\n  \u003Cli>Binary search: Sıralı bir veri üzerinde hızlı arama yapmak için uygundur; arama maliyeti O(log n)'dir.\u003C/li>\n\u003C/ul>\n\n\u003Ch2>Pratik öneriler, kontrol listesi ve alıştırmalar\u003C/h2>\n\u003Ch3>Kısa kontrol listesi (başlarken)\u003C/h3>\n\u003Cul>\n  \u003Cli>Veri sıralı mı? Değilse önce sıralamayı düşünün veya başka bir arama yöntemi kullanın.\u003C/li>\n  \u003Cli>Veri boyutu nedir? Küçükse basit algoritmalar yeterli olabilir; büyükse daha verimli yöntemlere bakın.\u003C/li>\n  \u003Cli>Yerinde sıralama mı isteniyor? Bellek kısıtları var mı?\u003C/li>\n  \u003Cli>Test yazın: Kenar durumları (boş dizi, tek eleman, hedef bulunmayan durum) için test ekleyin.\u003C/li>\n\u003C/ul>\n\n\u003Ch3>Pratik alıştırmalar\u003C/h3>\n\u003Col>\n  \u003Cli>Bubble sort fonksiyonunuzu farklı uzunluklarda rasgele dizilerle çalıştırıp çalışma süresini ölçün.\u003C/li>\n  \u003Cli>Sıralı bir dizi üzerinde hem iteratif hem rekürsif binary search yazın ve davranışlarını karşılaştırın.\u003C/li>\n  \u003Cli>Off-by-one hatasını test etmek için sınır değerler (ilk/son eleman) ile testler oluşturun.\u003C/li>\n\u003C/ol>\n\n\u003Ch2>Sonuç\u003C/h2>\n\u003Cp>Bubble sort ve binary search, programlama öğreniminin ilk adımlarında sık karşılaşılan iki temel kavramdır. Bubble sort sıralama mantığını basitçe gösterir; binary search ise sıralanmış verilerde verimli arama yapmanın örneğidir. Karmaşıklık analizleri ve kullanım önerileri için rehber kaynaklar: \u003Ca href=\"https://www.davutkara.com/tr/bubble-sort/\">Davut Kara - Bubble Sort\u003C/a> ve \u003Ca href=\"https://www.algopit.wiki/algorithms/sorting\">Algopit\u003C/a>. Başlangıç seviyesindeyseniz, hem kodu elle çalıştırarak adımları takip etmek hem de küçük testler yazarak doğruluğu kontrol etmek öğrenmeyi hızlandırır.\u003C/p>\n\u003Chr>\n\u003Cp>\u003Cstrong>Kaynaklar:\u003C/strong> Davut Kara (Bubble Sort) ve Algopit (Sıralama ve Arama algoritmaları) referans alınmıştır.\u003C/p>","Başlangıç algoritmaları: Bubble sort ve Binary Search — Örne","Bubble sort ve binary search algoritmalarının temel kavramlarını, zaman ve mekan karmaşıklıklarını ve adım adım Python örnekleri ile pratik uygulamalarını öğren","Temel Algoritmalar, sıralama algoritmaları, arama algoritmaları, bubble sort, binary search, algoritma örnekleri","baslangic-algoritmalari-bubble-sort-ve-binary-search-ornek-kodlar","2026-04-09T18:38:07.000Z",{"id":16,"title":17,"slug":18},206,"Temel Algoritmalar","temel-algoritmalar",{"id":20,"name":21,"nickname":22,"slug":23},92,"Burak Demirtaş","CodeMentor","burak-demirtas","/media/blog/a25975cdf5a7afa3bb7c1a189cccd2cb.jpg","/media/blog/a25975cdf5a7afa3bb7c1a189cccd2cb_thumb.jpg","/media/blog/a25975cdf5a7afa3bb7c1a189cccd2cb.webp","/media/blog/a25975cdf5a7afa3bb7c1a189cccd2cb_thumb.webp",null,{"minutes":30,"wordCount":31,"imageCount":32,"formatted":33},4,788,0,"4 dk okuma süresi","/blog/temel-algoritmalar/baslangic-algoritmalari-bubble-sort-ve-binary-search-ornek-kodlar",[],["Reactive",37],{"title":7,"subTitle":17,"image":24},["Reactive",39],{"title":10,"meta":40,"link":75},[41,43,45,48,51,54,57,60,63,66,69,71,73],{"hid":42,"name":42,"content":11},"description",{"hid":44,"name":44,"content":12},"keywords",{"hid":46,"name":46,"content":47},"author","Başlangıç Seviyesi Kod & Snippet Rehberi",{"hid":49,"name":49,"content":50},"robots","index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1",{"hid":52,"property":52,"content":53},"og:type","website",{"hid":55,"property":55,"content":56},"og:title","Başlangıç Kod & Snippet Rehberi | KodÖğreniyorum",{"hid":58,"property":58,"content":59},"og:description","Yeni başlayanlara yönelik kısa kod örnekleri, snippet'ler ve adım adım alıştırmalar. Hızlı uygulamalarla temel programlama mantığını pekiştir.",{"hid":61,"property":61,"content":62},"og:image","https://kodogreniyorum.com/media/blog/a25975cdf5a7afa3bb7c1a189cccd2cb.jpg",{"hid":64,"property":64,"content":65},"og:url","https://kodogreniyorum.com/blog/temel-algoritmalar/baslangic-algoritmalari-bubble-sort-ve-binary-search-ornek-kodlar",{"hid":67,"name":67,"content":68},"twitter:card","summary_large_image",{"hid":70,"name":70,"content":56},"twitter:title",{"hid":72,"name":72,"content":59},"twitter:description",{"hid":74,"name":74,"content":62},"twitter:image",[76,78],{"rel":77,"href":65},"canonical",{"rel":79,"href":80},"amphtml","https://amp.kodogreniyorum.com/blog/temel-algoritmalar/baslangic-algoritmalari-bubble-sort-ve-binary-search-ornek-kodlar",["Reactive",82],{"@context":83,"@graph":84},"https://schema.org",[85,98],{"@type":86,"headline":10,"image":62,"author":87,"publisher":90,"datePublished":14,"dateModified":14,"mainEntityOfPage":96,"description":11},"BlogPosting",{"@type":88,"name":21,"url":89},"Person","https://kodogreniyorum.com/yazarlar/burak-demirtas",{"@type":91,"name":47,"logo":92},"Organization",{"@type":93,"url":94,"width":95,"height":95},"ImageObject","https://kodogreniyorum.com/img/icons/favicon.png",32,{"@type":97,"@id":65},"WebPage",{"@type":99,"itemListElement":100},"BreadcrumbList",[101,106,110,113],{"@type":102,"position":103,"name":104,"item":105},"ListItem",1,"Ana Sayfa","https://kodogreniyorum.com",{"@type":102,"position":107,"name":108,"item":109},2,"Blog","https://kodogreniyorum.com/blog",{"@type":102,"position":111,"name":17,"item":112},3,"https://kodogreniyorum.com/blog/temel-algoritmalar",{"@type":102,"position":30,"name":7,"item":65}]