Jump to content
  • entries
    33
  • comments
    0
  • views
    2,637

Entries in this blog

Shrinking the Underlying Array (Altta Yatan Diziyi Küçültme)

"Shrinking the Underlying Array" (Altta Yatan Diziyi Küçültme), bir veri yapısının (örneğin bir dizi listesi veya kuyruk) kullanmadığı belleği serbest bırakmak için kullanılan bir tekniktir. Bu yaklaşım, gereksiz bellek kullanımını en aza indirmek ve dolayısıyla daha etkili bir bellek yönetimi sağlamak için kullanılır. Neden Gerekli? Bir veri yapısı içindeki öğeler çıkarıldıkça, kullanılmayan bir alan oluşabilir. Bu durum, kullanmadığınız bellek alanı kapladığından, gereksiz bir yük ol

Python'da Çok Boyutlu Listeler

Python'da çok boyutlu listeler (veya diziler), kendi içinde başka listeler içeren bir liste şeklinde düzenlenir. Bu iç içe listeler, bir matris veya tensör gibi bir yapıyı temsil edebilir, karmaşık veri organizasyonuna imkan tanır. 2D Liste (Matris) 2D liste, satırlar ve sütunlarla bir tablo gibidir: satir = 3 sutun = 4 # Tüm değerleri sıfır olan 2D bir liste oluşturma matris = [[0 for j in range(sutun)] for i in range(satir)] # matris = [[0]*sutun]*satir # Matrisi yazdırma for s

Çok Boyutlu (multidimensional) Veri Kümeleri

Çok boyutlu (multidimensional) veri kümeleri, verilerin birden fazla özelliği veya boyutu olduğunda kullanılır. Her bir boyut, verinin bir yönünü temsil eder. İşte çok boyutlu veri kümelerinin ayrıntılı bir açıklaması: 1. Çok Boyutlu Veri Nedir? Çok boyutlu veri, her biri farklı bir özelliği veya boyutu temsil eden birden fazla değer içerir. Örneğin, bir şehrin iklim verileri sıcaklık, nem, yağış miktarı, rüzgar hızı vb. gibi farklı boyutlar içerebilir. 2. Kullanım Alanları Ç

Python String Türlerinin Verimliliği

Python'daki stringler değiştirilemez (immutable) olduğundan, çoğu işlem aslında yeni bir string oluşturur ve bu, belirli operasyonların etkinliklerini etkileyebilir. İşte bazı genel kural ve örnekler: Erişim ve Dizi Uzunluğu: Stringin bir indeksindeki karaktere erişmek veya bir stringin uzunluğunu almak genellikle sabit zamanlıdır (O(1)) çünkü bu bilgiler bellekte doğrudan bulunabilir. String Birleştirme ve Çoğaltma: String birleştirmek veya bir stringi çoğaltmak genellikle doğrusal za

Python Dizi Türlerinin Verimliliği

Python'ın dizi türlerinin verimliliği, hem hafıza kullanımı hem de işlem zamanı açısından değerlendirilir. Genellikle, farklı dizi türlerinin verimliliği, kullanılan işlemlere ve dizi türünün uygulandığı belirli duruma bağlıdır. İşte Python'da yaygın olarak kullanılan bazı dizi türlerinin zaman karmaşıklığı analizleri: list: Python listeleri, dinamik dizilerdir ve genellikle elemanları ekleme ve çıkarma işlemlerini çok hızlı bir şekilde gerçekleştirirler. Listenin sonuna bir eleman ekl

Dinamik Dizilerin Amortize Edilmiş Analizi

Amortized Analysis, bir algoritmanın performansını analiz etmek için kullanılan bir tekniktir. Bu, bir dizi operasyonun maliyetini hesaplarken, operasyonlar arasında maliyetin dağıtılabileceği durumları dikkate alır. Dinamik dizi senaryosunda, bir eleman eklemek genellikle O(1) zaman alır - bu, sabit zaman karmaşıklığı anlamına gelir. Ancak, dizi dolu olduğunda ve yeni bir eleman eklememiz gerektiğinde, diziyi genişletmek ve tüm elemanları yeni diziye kopyalamak O(n) zaman alır. Bu, lineer

Dinamik Bir Dizi Tanımlama

Python'da, listeler zaten dinamik bir dizi olarak uygulanır, bu nedenle Python'da bir dinamik dizi uygulamanın pek bir anlamı yoktur. Ancak, eğitim amaçlı, Python'da bir liste kullanarak basit bir dinamik dizi uygulaması aşağıdaki gibidir. class DynamicArray: def __init__(self): self._n = 0 # Dizideki eleman sayısı self._capacity = 1 # Ayrılan kapasite self._A = self._make_array(self._capacity) # Dizi def __len__(self): return self._n def __get

Dinamik Diziler ve Amortisman

Python'da, listelerin kapasitesi dinamik olarak artabilir. Bir liste oluşturduğunuzda, Python başlangıçta belirli bir kapasiteye sahip bir hafıza bloğu ayırır. Liste kapasitesi dolduğunda ve yeni bir eleman eklenmeye çalışıldığında, Python daha büyük bir hafıza bloğu ayırır ve eski elemanları yeni hafıza bloğuna kopyalar. Bu, dinamik bir diziye veya listeye bir örnektir. Amortizasyon, bir veri yapısının zaman karmaşıklığının uzun vadede nasıl değiştiğini inceleyen bir analiz türüdür. Python

Kompakt Dizi Türleri

Python'da, listelerin yanı sıra, daha verimli bellek kullanımına izin veren kompakt dizi türleri de mevcuttur. Bu dizi türleri, array modülü kullanılarak oluşturulabilir ve tüm elemanları aynı türden olan (örneğin tüm elemanlarının sayısal olduğu) bir dizi oluşturur. array modülündeki array tipi, tüm elemanları aynı türde olan homojen bir dizi sunar. Bu, liste tipinden farklıdır çünkü listeler heterojen olabilir - yani, bir liste farklı türden elemanları içerebilir. Bir array oluşturur

Referans Diziler

Referans dizileri, bir dizi yapısını kullanarak birden çok öğeyi saklar. Ancak, bu durumda, dizi öğelerin kendisini değil, öğelere olan referansları saklar. Bu, değişken büyüklükte ve / veya farklı türlerde öğeleri saklama esnekliğini sağlar. Python'daki listeler tipik bir referans dizisi örneğidir. Bir Python listesi, öğelerin değil, hafızadaki öğelere olan referansların dizisidir. Bu, listelerin her türden öğeyi saklamasını ve boyutlarının dinamik olarak değişmesini sağlar. Örneğin,

Düşük Düzeyli Dizililer (low-level arrays)

Bir bilgisayar sisteminde, veriler bellekte (genellikle RAM'de) depolanır. Bu bellek, bir dizi hücreden oluşur, her bir hücre ayrı bir adresle ayrı ayrı erişilebilir. Yani, belirli bir bellek adresine gitmek ve orada depolanan verileri almak veya değiştirmek mümkündür. Düşük seviye dillerde (C, C++ gibi), programcılar genellikle bu adresleri doğrudan manipüle ederler. Bu, bellekte düşük seviye diziler (low-level arrays) oluşturmalarını sağlar. Bu tür bir dizi, bellekteki ardışık hücreleri i
×
×
  • Create New...