Veri Yapısında Dizi (Opera)

⚡ Akıllı Özet

Veri yapılarındaki diziler, aynı veri türündeki birden fazla öğeyi, her birine bir indeks aracılığıyla erişilebilen bitişik bellek konumlarında depolar. Bu eğitim, kavramı, dizilerin neden önemli olduğunu ve bunların nasıl oluşturulup işleneceğini açıklamaktadır. Python, C++, ve Java örneklerle.

  • ???? Temel Tanım: Bir dizi, birbirine bitişik bellekte aynı türden birden fazla öğeyi tutar ve bu öğelere indeks yoluyla erişilir.
  • ⚡ Hızlı Erişim: Herhangi bir öğe, indeksi kullanılarak sabit sürede alınır.
  • ️ Beş Operadurumlar: Ekleme, silme, arama, güncelleme ve diziler arasında gezinme işlemleri dizi araç setinde yer alır.
  • 🌐 Diller arası: Python Dizi modülünü kullanır; C++ hem de Java Dizileri manuel mantık kullanarak doğrudan tanımlayın.
  • 🤖 Yapay Zekanın Önemi: Dizi yapıları, makine öğrenimi hesaplamalarına güç veren tensörlerin ve matrislerin temelini oluşturur.

Veri Yapısında Dizi (Opera)

Veri Yapısında Dizi Nedir?

An dizi Dizi, benzer veri türündeki birden fazla veri öğesini depolamak için kullanılan bir veri yapısıdır. Bir dizinin öğeleri bitişik bellek konumlarına yerleştirilir ve bu konumlara dizin adı verilir. elemanları Dizinin eleman sayısı, dizinin toplam eleman sayısıdır. Bir dizideki toplam eleman sayısı, dizinin eleman sayısıdır. uzunluk.

Her bir öğeye konumu üzerinden erişilir ve bu referansa "alıcı" denir. indeks or altindis.

Dizi Kavramı

Dizilerin Kavram Diyagramı

Dizilerin Kavram Diyagramı

Yukarıdaki diyagram şunu göstermektedir:

  1. Dizi, öğelerin bulunduğu bir kaptır.
  2. Öğelerin "ABC", TRUE veya FALSE gibi belirli bir değeri ve veri türü vardır.
  3. Her öğenin, ona erişmek için kullanılan kendi indeksi vardır.

Not:

  • Öğeler bitişik bellek konumlarında saklanır.
  • Bir dizin her zaman dizi öğelerinin toplam sayısından azdır.
  • Dizi olarak tanımlanan herhangi bir değişken birden fazla değer saklayabilir.
  • Hemen hemen tüm diller aynı dizi kavramını paylaşır, ancak bunların nasıl tanımlandığı ve başlatıldığı konusunda farklılık gösterirler.
  • Tüm başlatmalarda ortak olan üç unsur vardır: dizi adı, elemanlar ve elemanların veri türü.

Aşağıdaki diyagram, bir değişkenin tanımlanmasına ilişkin sözdizimini göstermektedir. dizi Python hem de C++Bu durum, diller arasında söz dizimi biraz farklılık gösterse bile kavramın aynı kaldığını göstermektedir.

Dizilerin Sözdizimini Anlayın

Dizilerin Sözdizimini Anlayın

  • Dizi adı: Öğeler koleksiyonuna kolayca ulaşmak için gereklidir.
  • Veri tipi: Tür kontrolü ve veri bütünlüğü için gereklidir.
  • Elemanları: Dizide bulunan veri değerleri.

Dizilere Neden İhtiyacımız Var?

  • Diziler, tek bir değişkende birden fazla değer depolamak için idealdir.
  • Birçok değeri kolayca ve hızlı bir şekilde işleyebilirler.
  • Dizilerle değerleri sıralamak ve aramak daha kolaydır.

Bir Dizi Oluşturma Python

In PythonDiziler, listelerden farklıdır: bir liste farklı veri türlerindeki öğeleri tutabilirken, bir dizi yalnızca aynı veri türündeki öğeleri tutabilir. Python Dizileri işlemek için ayrı bir modülü vardır, adı da budur. arrayKullanmadan önce içe aktarmanız gereken bir dosya.

Not: Dizi, tamsayılar ve ondalık sayılar gibi gerçek sayılar içermelidir; metin dizeleri kabul edilmez.

Aşağıdaki kod, bir tamsayı dizisi oluşturur. Python Hesap bakiyelerini saklamak için:

import array
balance = array.array('i', [300, 200, 100])
print(balance)

Dizi Bildirmenin Yolları Python

İçinde bir dizi bildirebilirsiniz Python Aşağıdaki sözdizimini kullanarak başlatırken:

arrayName = array.array(typecode, [array_items])

Dizinin Söz Dizimi Python

Dizinin Söz Dizimi Python

  1. Tanımlayıcı: Değişkenler için yaptığınız gibi bir isim belirtin.
  2. Modüller: Python Öncelikle içe aktarmanız gereken "array" adlı özel bir modülü vardır.
  3. Yöntem: Dizi modülü, tür kodu ve öğeler olmak üzere iki argüman alan, diziyi başlatmak için bir yönteme sahiptir.
  4. Tür kodu: Mevcut tür kodlarını kullanarak veri türünü belirtin (aşağıdaki tabloya bakınız).
  5. Elemanları: Köşeli parantez içindeki dizi elemanlarını belirtin, örneğin [130, 450, 103].

Aşağıdaki tabloda desteklenen veri türleri için mevcut tür kodları listelenmiştir.

Tür kodu C Tipi Python Menşei Minimum boyut (bayt)
'b' imzalı karakter int 1
'B' imzasız karakter int 1
'sen' Py_UNICODE Unicode karakter 2
'H' kısa imzalı int 2
'H' imzasız kısa int 2
'ben' imzalı int int 2
'BEN' imzasız int int 2
'L' uzun imzalı int 4
'L' imzasız uzun int 4
'F' şamandıra şamandıra 4
'd' çift şamandıra 8

Belirli bir dizi değerine nasıl erişilir?

Dizideki herhangi bir öğeye dizinini kullanarak erişebilirsiniz.

Sözdizimi:

arrayName[indexNum]

Örnek:

balance[1]

Bir Dizi Öğesine Erişim

Bir Dizi Öğesine Erişim

Burada, dizinin ikinci değerine 1. indeksi kullanarak eriştik. Çıktı 200'dür, bu da bakiye dizisinin ikinci değeridir.

import array
balance = array.array('i', [300, 200, 100])
print(balance[1])

Çıktı:

200

Dizi Operaiçindekiler Python

MKS Python Dizi modülü, dizi işlemleri için ayrı fonksiyonlar sağlar. Bunlar kalıcı yöntemlerdir, yani yapılan değişiklik dizi değişkeninde kaydedilir.

Ekle

Bu işlem, bir dizinin başına, sonuna veya herhangi bir belirtilen indeksine bir veya daha fazla öğe ekler. İki argüman bekler: indeks ve değer.

arrayName.insert(index, value)

Örnek: İndeks 1'den (200 değeri) hemen sonra yeni bir değer eklemek için, insert yönteminde indeks 2'ye referans verin.

import array
balance = array.array('i', [300, 200, 100])
balance.insert(2, 150)
print(balance)

Çıktı:

array('i', [300, 200, 150, 100])

Sil

Bu işlem, tek bir argüman alarak, bir diziden bir öğeyi değerine göre siler. İşlem tamamlandıktan sonra, öğeler yeniden düzenlenir ve indeksler yeniden atanır.

arrayName.remove(value)

Örnek:

import array
balance = array.array('i', [300, 200, 150, 100])
balance.remove(150)
print(balance)

Çıktı:

array('i', [300, 200, 100])

Ara

Bu işlem, bir öğeyi değerine göre arar ve dizinini döndürür. Bu, dizi değerlerini değiştirmeyen, tahrip edici olmayan bir yöntemdir.

arrayName.index(value)

Örnek:

import array
balance = array.array('i', [300, 200, 150, 100])
print(balance.index(150))

Çıktı:

2

Güncelle

Güncelleme işlemi, basit bir atama operatörü kullanarak belirli bir dizindeki mevcut değeri değiştirir.Python dizilerin bir özelliği yoktur. update() yöntem.)

arrayName[index] = value

Örnek: 150'yi (2. indekste) 145 ile değiştirmek için:

import array
balance = array.array('i', [300, 200, 150, 100])
balance[2] = 145
print(balance)

Çıktı:

array('i', [300, 200, 145, 100])

çapraz

Bir yolu geçebilirsin Python Döngü kullanarak dizi oluşturma:

import array
balance = array.array('i', [300, 200, 100])
for x in balance:
    print(x)

Çıktı:

300
200
100

Bir Dizi Oluşturma C++

C++ daha esnektir Python Diziler oluştururken. Oluşturabilirsiniz. C++ diziler Üç farklı şekilde. Aşağıdaki kod, bir tamsayı dizisi oluşturur. C++ Hesap bakiyelerini saklamak için:

#include <iostream>
using namespace std;

int main()
{
  int balance[3] = { 300, 200, 100 };
  for (int i = 0; i < 3; i++)
    {
      cout << "value of i: " << balance[i] << endl;
    }
  return 0;
}

Dizi Bildirmenin Yolları C++

Programınızın gereksinimlerine bağlı olarak, bir diziyi üç farklı şekilde tanımlayabilirsiniz.

Boyuta göre beyan:

dataType arrayName[arraySize];   // e.g. int balance[3];

Yalnızca dizi öğeleri içeren bildirim:

dataType arrayName[] = {array_items};   // e.g. int balance[] = { 300, 200, 100 };

Boyut ve ürün bazında beyan:

dataType arrayName[arraySize] = {array_items};   // e.g. int balance[3] = { 300, 200, 100 };

Bir dizideki belirli bir değere nasıl erişilir? C++?

Bir Dizi Öğesine Erişim

Bir Dizi Öğesine Erişim

#include <iostream>
using namespace std;

int main()
{
  int balance[3] = { 300, 200, 100 };
  cout << balance[1];
  return 0;
}

Çıktı:

200

Dizi Operaiçindekiler C++

aksine Python, içinde C++ Ekleme, silme, arama, güncelleme ve gezinme işlemleri için mantığı kendiniz programlamanız gerekmektedir.

Ekle

Ekleme mantığı şu şekildedir: Dizi öğeleri arasında döngü yapılır, öğeler daha yüksek bir indekse kaydırılır, ardından verilen indekse yeni bir öğe eklenir. Aşağıdaki örnekte beş öğe vardır ve 200 değerinin hemen ardından 150 değeri eklenir.

#include <iostream>
#include <stdio.h>

main() {
   int pos = 2;
   int size = 4;
   int balance[] = {300, 200, 100, 50, 0};

   printf("BEFORE INSERT:\n");
   for(int i = 0; i < 5; i++) {
      printf("%d\n", balance[i]);
   }

   /* SHIFT ITEMS TO A GREATER INDEX */
   for(int i = size; i >= pos; i--) {
       balance[i+1] = balance[i];
   }

   /* INSERT VALUE AT THE DESIRED INDEX */
   balance[pos] = 150;

   printf("AFTER INSERT:\n");
   for(int i = 0; i < 6; i++) {
      printf("%d\n", balance[i]);
   }
}

Dizi Operaiçindekiler Java

Şimdi bir program oluşturalım. Java Kullanıcıdan dizinin boyutunu ve elemanlarının değerlerini alan bir fonksiyon.

import java.util.Scanner;

public class AddElements {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("Enter the size of the array");
        int n = sc.nextInt();

        int arr[] = new int[n];

        System.out.println("Enter Elements in the array");
        for(int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }
        System.out.println("Elements in the array");
        for(int j = 0; j < n; j++) {
            System.out.print(arr[j] + " ");
        }
    }
}

Bir öğeyi değiştirme Java Dizi

Bir öğeyi dizinine göre güncelleyin.

import java.util.Scanner;

public class ModifyElement {
    public static void main(String[] args) {
        int arr[] = {1, 2, 3, 4, 5};
        int length = arr.length;
        Scanner sc = new Scanner(System.in);

        System.out.println("Array Elements Before modify");
        for(int i = 0; i < length; i++) {
            System.out.print(arr[i] + " ");
        }

        System.out.println("\nEnter the position to change");
        int pos = sc.nextInt();
        System.out.println("Enter the value");
        int val = sc.nextInt();

        arr[pos] = val;

        System.out.println("Array Elements After modify");
        for(int j = 0; j < length; j++) {
            System.out.print(arr[j] + " ");
        }
    }
}

Erişim Öğeleri Java Dizi

Diziyi dolaşarak tüm dizi elemanlarını yazdırın.

public class AccessElements {
    public static void main(String[] args) {
        int arr[] = {1, 2, 3, 4, 5};
        int length = arr.length;

        System.out.println("Array Elements are:-");
        for(int i = 0; i < length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

SSS

Dizi, aynı veri türündeki elemanların ardışık bellek konumlarında depolandığı bir koleksiyondur. Her elemana bir indeks aracılığıyla erişilir; bu da dizileri, birbiriyle ilişkili birden fazla değeri depolamak ve almak için verimli hale getirir.

A Python Listeler farklı veri türlerindeki öğeleri tutabilirken, diziler (array modülünden) tek bir veri türündeki öğeleri tutar. Diziler, büyük sayısal veri kümeleri için bellek açısından daha verimlidir.

Beş temel işlem şunlardır: ekleme (öğe ekleme), silme (öğe kaldırma), arama (değere göre öğe bulma), güncelleme (belirli bir dizindeki değeri değiştirme) ve dolaşma (her öğeyi ziyaret etme).

Bir elemana indeks ile erişim O(1) - sabit zaman karmaşıklığına sahiptir, çünkü bellek adresi doğrudan taban adresinden ve indeksten hesaplanır. Ekleme ve silme işlemleri, kaydırma nedeniyle O(n) karmaşıklığına sahip olabilir.

Bitişik depolama, programın herhangi bir elemanın adresini temel adres artı indeks çarpı eleman boyutundan anında hesaplamasına olanak tanır. Bu, dizilere hızlı, sabit zamanlı rastgele erişim özelliği kazandırır.

Python Dizi modülüne ihtiyaç duyar ve yerleşik çalışma yöntemleri sunar. C++ hem de Java Diziler yerel olarak tanımlanabilir ancak ekleme, silme ve arama mantığını kendiniz kodlamanız gerekir. Java Diziler ayrıca bir uzunluk özelliği de sunar.

Diziler, yapay zekada kullanılan vektörlerin, matrislerin ve tensörlerin temelini oluşturur. NumPy ve TensorFlow gibi kütüphaneler, hızlı sayısal hesaplama için eğitim verilerini ve model ağırlıklarını çok boyutlu diziler olarak depolar.

Evet. Yapay zekâ kodlama asistanları, bir eksik veya sınır dışı indeks hatalarını tespit eder, düzeltmeler önerir ve bir indeksin neden dizi uzunluğunu aştığını açıklar.ping Yeni başlayanlar, sık karşılaşılan dizi hatalarını hızlıca çözebilirler.

Bu yazıyı şu şekilde özetleyin: