Dizi (Array) Nedir? Eleman, İndeks ve Boyut Kavramları
Dizi, aynı türden ya da birlikte işlenen benzer verileri sıralı bir yapı içinde tutmaya yarar. Elemanlara indeksleriyle erişilir; boyut ve sınır bilgisi ise geçerli erişimleri belirler. Temel kullanım mantığı, farklı programlama dillerindeki sözdizimlerine uyarlanabilir.
Bu yazıda (5)
Programlamada aynı nitelikteki birçok veriyi ayrı ayrı değişkenlerde tutmak yerine dizi adı verilen düzenli bir yapı kullanılabilir. Dizi; verileri sıralı biçimde saklama, belirli bir elemana ulaşma ve bütün elemanlar üzerinde işlem yapma fikrini bir araya getirir.
Dizinin tanımı ve temel amacı
Dizi (array), birden fazla veriyi belirli bir sıra içinde saklayan veri yapısıdır. Dizideki her veri bir eleman olarak adlandırılır. Örneğin bir öğrencinin dört sınav notu, notlar adlı tek bir dizi içinde 72, 85, 60 ve 90 gibi ayrı elemanlar olarak tutulabilir. Daha açık bir örnek olarak notlar = [72, 85, 60, 90] dizisi dört sınav notunu aynı yapı altında toplar.
Dizinin temel amacı, birbiriyle ilişkili çok sayıda değeri tek tek değişken adlarıyla yönetme zorunluluğunu azaltmaktır. Dizi, elemanları sıralı konumlara yerleştirir ve her konumu bir indeksle ilişkilendirir. Böylece program, bütün yapıyı tek bir adla saklayabilir; gerektiğinde belirli bir konumdaki değeri seçebilir veya tüm değerleri birlikte işleyebilir. Sıra önemlidir ve aynı değer birden fazla konumda bulunabilir. Örneğin [10, 10, 15] dizisinde 10 değeri iki ayrı elemandır; değerleri aynı olsa da dizideki konumları farklıdır. Bu düzen, verinin hem saklanmasını hem de konumuna göre kullanılmasını sağlar.
Dizi elemanları ve indeks kavramı
Dizide saklanan her bir değere eleman denir. Elemanın dizideki konumunu gösteren numara ise indeks olarak adlandırılır. İndeks, programın hangi elemana erişeceğini belirtir; değer ile indeks aynı şey değildir. Örneğin renkler = ["kırmızı", "mavi", "yeşil"] dizisinde "mavi" bir elemandır, onun konumunu gösteren sayı ise indeksidir.
Programlama dillerinin çoğunda indeksler 0'dan başlar. Bu durumda renkler dizisinde kırmızı 0. indekste, mavi 1. indekste ve yeşil 2. indekste bulunur. Bazı diller veya özel gösterimler ilk konumu 1 kabul edebilir; bu nedenle indeks başlangıcı kullanılan dile ve yapıya göre kontrol edilmelidir. Bir elemana erişme mantığı genel olarak dizi adı ve köşeli parantez içindeki indeksle gösterilir: renkler[1] ifadesi, 0'dan başlayan indeksleme kabul edildiğinde mavi elemanını seçer.
İndeksin çalışma mantığı, dizinin sıralı konumlarıyla erişim isteğini eşleştirmektir. Program, istenen konumun numarasını kullanarak o konumdaki değeri okur. Aynı indeksle tekrar erişildiğinde, eleman değiştirilmemişse aynı konumdaki değer alınır. Örneğin sayilar = [4, 7, 9] dizisinde sayilar[0] ilk elemanı, sayilar[2] ise üçüncü elemanı gösterir. Bu örnekte 7'nin kendisi indeks değil, 1. indeksteki elemandır.
Dizi boyutu, eleman sayısı ve sınırlar
Dizinin boyutu, kaç eleman için yer veya konum içerdiğini ifade eder; eleman sayısı ise o dizide bulunan elemanların toplamıdır. Basit ve sabit boyutlu bir dizi için bu iki kavram çoğu zaman birlikte düşünülür. Dört elemanlı [12, 18, 25, 31] dizisinin eleman sayısı 4'tür. İndeksleme 0'dan başlıyorsa geçerli indeksler 0, 1, 2 ve 3 olur; 4 indeksi dizinin sınırının dışındadır.
Sınırları bilmek, olmayan bir konuma erişmeye çalışmaktan doğan hataları önler. Geçerli indeks aralığı, indeksleme 0'dan başlıyorsa 0 ile eleman sayısının bir eksiği arasındadır. İndeksleme 1'den başlıyorsa aralık 1 ile eleman sayısı arasındadır. Bu ayrım, farklı programlama dillerinde aynı fikri uygularken özellikle önemlidir. Boş bir dizide hiç eleman ve dolayısıyla erişilebilecek geçerli bir indeks bulunmaz.
Dizi oluşturma ve elemanlara erişme
Diziyle çalışmanın temel akışı üç adımdan oluşur: bir dizi değişkeni tanımlamak, başlangıç elemanlarını yerleştirmek ve ihtiyaç duyulan elemana indeksiyle erişmek. Genel gösterim olarak sayilar = [5, 8, 13] yazıldığında sayilar adıyla üç elemanlı bir dizi oluşturulmuş olur. 0'dan başlayan indeksleme kullanılıyorsa sayilar[0] ilk değeri, sayilar[1] ikinci değeri ve sayilar[2] üçüncü değeri verir. Sözdizimi programlama diline göre değişse de oluşturma, konum belirleme ve değeri okuma mantığı aynıdır.
Erişilen eleman yalnızca okunmak zorunda değildir; dilin ve veri yapısının izin verdiği ölçüde bir konumdaki değer değiştirilebilir. Örneğin sayilar dizisinin 1. indeksindeki 8 yerine 10 yazılması, dizinin ikinci elemanını günceller. Yeni eleman eklemek veya mevcut elemanı silmek ise kullanılan dizi türüne göre farklı kurallara ve işlemlere sahip olabilir; bu işlemler, boyutun ve elemanların konumlarının değişip değişmediğiyle ilişkilidir. Dizi üzerinde dolaşma ve döngü kullanımı, elemanları sırayla ele almak için kullanılan temel yaklaşımdır.
Klasik diziler ile Python'daki listeler, benzer biçimde sıralı elemanları indekslerle erişilebilir şekilde tutsa da boyut ve eleman türü kuralları bakımından farklı davranabilir; dil karşılaştırması için Python ile JavaScript arasındaki farklar ayrıca incelenebilir. Çok boyutlu diziler, elemanları tek bir sıra yerine birden fazla boyut ve indeksle düzenler. Dizilerde arama ve sıralama algoritmaları ise mevcut elemanlar içinde belirli değerleri bulma veya elemanların sırasını değiştirme konularıdır.
Dizilerin tek değişkene göre sağladığı avantaj
Tek bir değişken genellikle tek bir değeri temsil eder. Örneğin not1, not2, not3 ve not4 adında dört değişken oluşturmak, dört notu saklayabilir; ancak eleman sayısı arttıkça değişken adlarını tek tek yazmak, takip etmek ve aynı işlemi her birine uygulamak zorlaşır. Dizi ise bu değerleri notlar adı altında birleştirir. Böylece veriler ortak bir yapı ve ortak bir ad üzerinden yönetilir.
Dizinin avantajı yalnızca daha az değişken adı kullanmak değildir. Elemanların sıralı olması, konuma göre erişimi ve aynı işlem mantığının farklı elemanlara uygulanmasını mümkün kılar. Örneğin bir sınıftaki notları tek tek ayrı değişkenlerde tutmak yerine notlar dizisinde saklamak, belirli bir notu indeksle seçmeyi ve notların tamamını aynı işlem akışıyla değerlendirmeyi kolaylaştırır. Ayrıca eleman sayısı ve indeks sınırları bilindiğinde program, veriyi düzenli bir yapı içinde ele alır. Bu nedenle dizi, özellikle birbiriyle ilişkili çok sayıda benzer verinin yönetiminde tekil değişkenlerden daha kullanışlıdır. Programlama dillerinin dizi ve liste uygulamaları farklı ayrıntılar içerebilir.
Bir haftanın günlük sıcaklıklarını ayrı ayrı değişkenler yerine sıcakliklar adlı bir dizide tutmak, belirli bir günün değerine konumuyla ulaşmayı ve haftalık verileri birlikte işlemeyi kolaylaştırır.
0'dan başlayan indekslemede n elemanlı bir dizinin son geçerli indeksi n - 1'dir. Eleman değeri ile indeksin farklı kavramlar olduğunu ve sınır dışı indeksin geçersiz olduğunu ayırt etmek önemlidir.
Sık sorulan sorular
Dizide eleman ile indeks arasındaki fark nedir?
Eleman, dizide saklanan değerdir; indeks ise bu değerin dizideki konumunu gösteren numaradır.
Dört elemanlı bir dizinin indeksleri nelerdir?
İndeksleme 0'dan başlıyorsa geçerli indeksler 0, 1, 2 ve 3'tür. İlk indeks 1 kabul ediliyorsa aralık 1, 2, 3 ve 4 olur.
Dizinin boyutu ile eleman sayısı aynı mıdır?
Sabit boyutlu basit dizilerde çoğu zaman aynı sayıyı ifade eder. Ancak bazı yapılarda ayrılan kapasite ile o anda bulunan eleman sayısı farklı olabilir.
Dizinin sınırını aşmak ne demektir?
Dizide bulunmayan bir indekse erişmeye çalışmaktır. Örneğin 0'dan başlayan indekslemeyle dört elemanlı bir dizide 4 indeksini kullanmak sınır dışıdır.
Dizi neden tek tek değişkenlerden daha kullanışlıdır?
İlişkili birçok değeri tek bir ad altında, sıralı konumlarda tutar. Bu da elemanlara indeksle erişmeyi ve aynı veri yapısını düzenli biçimde yönetmeyi kolaylaştırır.
- •Wikipedia (EN) — Sequence — Sequence / girisen.wikipedia.org