배열은 동일한 데이터 유형을 가진 여러 개의 요소들을 하나의 변수에 저장하기 위한 자료 구조입니다. 각 요소는 인덱스를 사용하여 접근할 수 있습니다.
배열은 동일한 데이터 유형을 가진 여러 개의 요소들을 하나의 변수에 저장하기 위한 자료 구조입니다. 각 요소는 고유한 인덱스를 가지고 있으며, 이 인덱스를 사용하여 요소에 빠르게 접근할 수 있습니다.
배열은 다양한 연산을 수행할 수 있는데, 대표적으로 접근(access), 검색(search), 추가(add), 삭제(remove) 연산이 있습니다. 이 연산들의 시간 복잡도는 배열의 특성에 따라 달라집니다.
배열의 특정 위치에 저장된 요소에 접근하는 연산입니다. 인덱스를 사용하여 직접 요소에 접근하므로 매우 빠른 시간에 수행됩니다. 시간 복잡도는 O(1)입니다.
특정 요소의 값을 찾는 연산입니다. 배열에서 요소를 검색할 때 최악의 경우 배열 전체를 순회해야 할 수 있으므로, 선형 검색(Linear Search)을 사용할 경우 최악의 시간 복잡도는 O(n)입니다. 하지만 정렬된 배열에서 이진 검색(Binary Search)을 사용하면 시간 복잡도를 O(log n)으로 줄일 수 있습니다.
새로운 요소를 배열에 추가하는 연산입니다. 배열의 끝에 요소를 추가할 경우에는 비교적 간단하게 수행됩니다. 하지만 중간에 요소를 추가하려면 추가한 위치 이후의 요소들을 모두 이동시켜야 하므로, 시간 복잡도는 최악의 경우 O(n)이 될 수 있습니다.
배열에서 요소를 삭제하는 연산입니다. 삭제된 요소 이후의 요소들을 앞으로 이동시켜 빈 공간을 메꿔야 하므로, 중간에 요소를 삭제할 경우 시간 복잡도는 최악의 경우 O(n)이 될 수 있습니다. 하지만 끝에 있는 요소를 삭제할 경우에는 O(1)의 시간 복잡도를 가질 수 있습니다.
int nums[] = {18, 5, 12, 9, 27, 8};
int length = sizeof(nums) / sizeof(nums[0]);
int max = nums[0];
for (int i = 1; i < length; i++) {
if (nums[i] > max) {
max = nums[i];
}
}
int data[] = {5, 8, 12, 6, 10};
int index = 2;
printf("값: %d\n", data[index]);
int n = 10;
for (int i = 0; i < n; i++) {
printf("%d\n", i);
}