배열(array)은 같은 타입의 변수들을 모아서 관리하기 위해 사용하는 유한 집합으로 정의할 수 있다.
변수가 하나의 데이터를 저장하기 위한 것이라면 배열은 여러 개의 데이터를 저장하기 위한 것이라고 할 수 있다.
배열을 구성하는 각각의 값을 요소(element)라고 하고, 배열에서의 위치를 가리키는 숫자는 인덱스(index)라고 한다. (배열의 index는 0부터 시작한다.)
배열의 특징은 다음과 같다.
배열은 인덱스가 존재하기 때문에 indexing 및 slicing이 가능하다.
- indexing : index를 사용해 특정 요소를 리스트로 부터 읽어들이는 것
- slicing : 요소에 특정 부분을 따로 분리해 조작하는 것
인덱스를 알고 있다면, 인덱스에 접근하는 시간복잡도는 이다.
데이터를 배열에 삽입을 하려면 기존에 있는 데이터를 한 칸 shift 한 후 데이터를 넣어야 하기에 시간복잡도는 이 걸린다.
마찬가지로 배열에서 데이터를 삭제하는 작업 또한 삭제한 뒤, 나머지 데이터들을 한 칸 shift 해줘야 해서 삽입과 마찬가지로 시간복잡도가 이 걸리게 된다.
int arr[] = new int[10];
for(int i = 0; i < 10; i++) {
arr[i] = i+1;
}
for(int i = 0; i < 10; i++) {
System.out.print(arr[i]);
}
#include <stdio.h>
int main()
{
int numArr[10] = { 11, 22, 33, 44, 55, 66, 77, 88, 99, 110 };
printf("%d\n", numArr[0]);
printf("%d\n", numArr[5]);
printf("%d\n", numArr[9]);
return 0;
}
#include <iostream>
using namespace std;
int main(){
int arr[5];
for(int i = 0; i < sizeof(arr)/sizeof(int); i++){
arr[i] = i+1;
cout << arr[i] << "\n";
}
}