데이터 구조의 배열 (Opera(설명)

⚡ 스마트 요약

데이터 구조에서 배열은 동일한 데이터 유형의 여러 항목을 연속된 메모리 위치에 저장하며, 각 항목은 인덱스를 통해 접근할 수 있습니다. 이 튜토리얼에서는 배열의 개념, 배열이 중요한 이유, 그리고 배열을 생성하고 조작하는 방법을 설명합니다. Python, C++예산 및 Java 예제와 함께.

  • 📦 핵심 정의: 배열은 동일한 유형의 요소들을 인접한 메모리 영역에 저장하며, 인덱스를 통해 접근할 수 있습니다.
  • 빠른 액세스: 인덱스를 사용하면 어떤 요소든 상수 시간 내에 검색할 수 있습니다.
  • 🛠️ 다섯 Operations : 배열 툴킷을 사용하여 삽입, 삭제, 검색, 업데이트 및 순회 작업을 수행할 수 있습니다.
  • 🌐 다국어: Python 배열 모듈을 사용합니다. C++ Java 배열을 네이티브 방식으로 선언하고 수동 로직을 사용하세요.
  • 🤖 AI의 관련성: 배열은 머신러닝 연산에 필수적인 텐서와 행렬의 기반이 됩니다.

데이터 구조의 배열 (Opera(설명)

데이터 구조에서 배열이란 무엇입니까?

An 정렬 배열은 동일한 데이터 타입의 데이터 항목을 여러 개 저장하기 위한 데이터 구조입니다. 배열의 항목들은 인접한 메모리 위치에 할당되며, 이러한 위치들을 배열 영역이라고 합니다. 요소 배열의 요소 개수입니다. 배열의 전체 요소 개수는 배열의 요소 개수와 같습니다. 길이.

각 요소는 위치를 통해 접근할 수 있으며, 이 참조를 참조 번호라고 합니다. 색인 or 아래 첨자.

어레이의 개념

어레이의 개념도

어레이의 개념도

위 그림은 다음을 보여줍니다.

  1. 배열은 요소의 컨테이너입니다.
  2. 각 요소는 "ABC", TRUE 또는 FALSE와 같은 특정 값과 데이터 유형을 가집니다.
  3. 각 요소는 고유한 인덱스를 가지고 있으며, 이 인덱스를 사용하여 요소에 접근할 수 있습니다.

참고 :

  • 요소는 인접한 메모리 위치에 저장됩니다.
  • 인덱스는 항상 배열 항목의 총 개수보다 작습니다.
  • 배열로 선언된 변수는 여러 값을 저장할 수 있습니다.
  • 거의 모든 프로그래밍 언어는 배열이라는 동일한 개념을 공유하지만, 배열을 선언하고 초기화하는 방식은 서로 다릅니다.
  • 모든 초기화에서 공통적으로 유지되는 세 가지 요소는 배열 이름, 요소 및 요소의 데이터 유형입니다.

다음 다이어그램은 선언 구문을 보여줍니다. 배열 Python C++이는 언어마다 구문이 약간씩 다르더라도 개념은 동일하게 유지된다는 것을 보여줍니다.

배열 구문 이해

배열 구문 이해

  • 어레이 이름: 요소들의 모음을 쉽게 참조할 수 있도록 필요합니다.
  • 데이터 형식: 타입 검사 및 데이터 무결성 검사에 필요합니다.
  • 집단: 배열에 존재하는 데이터 값들.

배열이 필요한 이유는 무엇일까요?

  • 배열은 하나의 변수에 여러 값을 저장하는 데 이상적입니다.
  • 그들은 많은 값을 쉽고 빠르게 처리합니다.
  • 배열을 사용하면 값을 정렬하고 검색하는 것이 더 쉽습니다.

배열 만들기 Python

In Python배열은 리스트와 다릅니다. 리스트는 서로 다른 데이터 형식의 항목을 저장할 수 있는 반면, 배열은 동일한 데이터 형식의 항목만 저장할 수 있습니다. Python 배열 처리를 위한 별도의 모듈이 있습니다. array사용하기 전에 반드시 가져와야 하는 파일입니다.

참고 : 배열에는 정수 및 부동 소수점과 같은 실수만 포함되어야 하며 문자열은 허용되지 않습니다.

다음 코드는 정수 배열을 생성합니다. Python 계좌 잔액을 저장하기 위해:

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

배열을 선언하는 방법 Python

배열을 선언할 수 있습니다. Python 다음 구문을 사용하여 초기화하는 동안:

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

배열 구문 Python

배열 구문 Python

  1. 식별자 : 변수에 이름을 지정하는 것처럼 이름을 지정하세요.
  2. 모듈 : Python 이 모듈에는 먼저 임포트해야 하는 "array"라는 특별한 모듈이 있습니다.
  3. 방법 : 배열 모듈에는 typecode와 elements라는 두 개의 인수를 받는 배열 초기화 메서드가 있습니다.
  4. 유형 코드: 사용 가능한 타입코드를 사용하여 데이터 유형을 지정하십시오(아래 표 참조).
  5. 집단: 배열 요소는 대괄호 안에 지정하십시오. 예를 들어 [130, 450, 103]과 같습니다.

아래 표는 지원되는 데이터 유형에 사용할 수 있는 유형 코드를 나열합니다.

유형 코드 C 타입 Python 타입 최소 크기(바이트)
'비' 서명 된 문자 INT 1
'비' 부호없는 문자 INT 1
'유' 파이_유니코드 유니 코드 문자 2
'시간' 짧게 서명됨 INT 2
'H' 서명되지 않은 짧은 INT 2
'나는' 서명된 정수 INT 2
'나는' 서명되지 않은 정수 INT 2
'엘' 긴 서명 INT 4
'엘' 부호없는 긴 INT 4
'에프' 뜨다 뜨다 4
'디' 더블 뜨다 8

배열의 특정 값에 접근하는 방법은 무엇인가요?

배열의 모든 항목은 인덱스를 사용하여 접근할 수 있습니다.

구문 :

arrayName[indexNum]

예:

balance[1]

배열 요소에 액세스

배열 요소에 액세스

여기서는 인덱스 1을 사용하여 배열의 두 번째 값에 접근했습니다. 출력 결과는 200이며, 이는 balance 배열의 두 번째 값입니다.

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

출력:

200

배열 Opera안으로 Python

The Python array 모듈은 배열 연산을 위한 별도의 함수들을 제공합니다. 이러한 함수들은 배열 변수를 파괴하는 방식으로 작동하며, 변경 사항은 배열 변수에 저장됩니다.

끼워 넣다

이 연산은 하나 이상의 항목을 배열의 시작, 끝 또는 지정된 인덱스에 삽입합니다. 이 연산은 인덱스와 값, 두 개의 인수를 받습니다.

arrayName.insert(index, value)

예: 인덱스 1(값 200) 바로 뒤에 새 값을 삽입하려면 삽입 메서드에서 인덱스 2를 참조하십시오.

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

출력:

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

.

이 연산은 값을 기준으로 배열에서 항목 하나를 삭제하며, 하나의 인수를 받습니다. 실행 후에는 항목들이 재배열되고 인덱스가 다시 할당됩니다.

arrayName.remove(value)

예:

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

출력:

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

검색

이 연산은 값으로 항목을 검색하고 해당 인덱스를 반환합니다. 배열 값을 변경하지 않는 비파괴적인 메서드입니다.

arrayName.index(value)

예:

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

출력:

2

업데이트

업데이트는 간단한 할당 연산자를 사용하여 지정된 인덱스의 기존 값을 대체합니다.Python 배열에는 없습니다 update() 방법.)

arrayName[index] = value

예: 인덱스 2의 150을 145로 바꾸려면 다음과 같이 하세요.

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

출력:

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

트래버스

당신은 횡단할 수 있습니다 Python 반복문을 사용하여 배열 만들기:

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

출력:

300
200
100

배열 만들기 C++

C++ 보다 유연합니다 Python 배열을 생성할 때 다음과 같이 생성할 수 있습니다. C++ 배열 세 가지 방법이 있습니다. 다음 코드는 정수 배열을 생성합니다. C++ 계좌 잔액을 저장하기 위해:

#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;
}

배열을 선언하는 방법 C++

프로그램의 요구 사항에 따라 배열을 선언하는 방법은 세 가지가 있습니다.

크기별 신고:

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

배열 항목만 포함하는 선언:

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

크기 및 품목별 신고:

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

배열의 특정 값에 접근하는 방법 C++?

배열 요소에 액세스

배열 요소에 액세스

#include <iostream>
using namespace std;

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

출력:

200

배열 Opera안으로 C++

같지 않은 Python에 C++ 삽입, 삭제, 검색, 업데이트 및 순회 작업에 대한 로직은 직접 프로그래밍해야 합니다.

끼워 넣다

삽입 로직은 다음과 같습니다. 배열 항목을 순회하면서 각 항목을 더 큰 인덱스로 이동시킨 후, 지정된 인덱스에 새 항목을 추가합니다. 아래 예시는 5개의 항목이 있는 배열에서 200 바로 뒤에 150을 삽입하는 예입니다.

#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]);
   }
}

배열 Opera안으로 Java

프로그램을 만들어 봅시다 Java 사용자로부터 배열 요소의 크기와 값을 입력받는 함수입니다.

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] + " ");
        }
    }
}

요소 수정하기 Java 배열

인덱스를 사용하여 요소를 업데이트합니다.

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] + " ");
        }
    }
}

액세스 요소 Java 배열

배열을 순회하여 배열의 모든 요소를 ​​출력합니다.

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] + " ");
        }
    }
}

자주 묻는 질문

배열은 동일한 데이터 형식의 요소들을 연속된 메모리 위치에 저장한 것입니다. 각 요소는 인덱스를 통해 접근할 수 있으므로, 배열은 여러 관련 값을 저장하고 검색하는 데 효율적입니다.

A Python 리스트는 서로 다른 데이터 유형의 항목을 저장할 수 있는 반면, 배열(배열 모듈의 객체)은 단일 데이터 유형의 항목만 저장합니다. 배열은 대규모 숫자 데이터 세트에 대해 메모리 효율성이 더 높습니다.

다섯 가지 기본 연산은 삽입(항목 추가), 삭제(항목 제거), 검색(값으로 항목 찾기), 업데이트(인덱스의 값 변경), 순회(모든 요소 방문)입니다.

인덱스를 이용한 요소 접근은 O(1) — 상수 시간 — 입니다. 메모리 주소는 기본 주소와 인덱스로부터 직접 계산되기 때문입니다. 삽입과 삭제는 시프트 연산으로 인해 O(n)이 될 수 있습니다.

연속적인 저장 방식 덕분에 프로그램은 기본 주소에 인덱스와 요소 크기를 곱한 값을 더하면 어떤 요소의 주소든 즉시 계산할 수 있습니다. 이것이 바로 배열이 빠르고 상수 시간 안에 임의 접근이 가능한 이유입니다.

Python 배열 모듈이 필요하며 내장된 연산 메서드를 제공합니다. C++ Java 배열을 기본적으로 선언할 수 있지만, 삽입, 삭제 및 검색 로직은 직접 코딩해야 합니다. Java 배열은 길이 속성도 제공합니다.

배열은 인공지능에서 사용되는 벡터, 행렬, 텐서의 기본 구성 요소입니다. NumPy와 TensorFlow 같은 라이브러리는 빠른 수치 계산을 위해 학습 데이터와 모델 가중치를 다차원 배열로 저장합니다.

예. AI 코딩 도우미는 인덱스 오차(off-by-one) 및 배열 범위를 벗어난 인덱스 오류를 감지하고, 수정 방법을 제안하며, 인덱스가 배열 길이를 초과한 이유를 설명해 줍니다.ping 초보자도 흔히 발생하는 배열 버그를 빠르게 해결할 수 있습니다.

이 게시물을 요약하면 다음과 같습니다.