코코딩딩

[자료구조] 배열 (Array) 본문

코딩/자료구조

[자료구조] 배열 (Array)

겟츄 2022. 5. 16. 23:12

배열은 데이터를 나열해서 인덱스에 대응하도록 구성한 데이터구조 이다.

 

배열은 같은 종류의 데이터를 효율적으로 관리하기 위해 사용하며 데이터를 순차적으로 저장할 때 사용한다.

 

배열의 장점은 인덱스번호를 알고 있다면 빠른 접근이 가능하고 첫 데이터의 위치에서 상대적인 위치로 데이터를 접근한다는 장점이 있다.

 

단점은 데이터의 추가와 삭제의 어려움이 있고 사전에 최대 길이를 지정해야 한다.

 

 

배열의 읽기

 

읽기는 자료 구조의 특정 위치를 찾는 것이며 배열에서는 인덱스의 값을 찾는 것을 말한다.

 

배열에서 읽기는 인덱스의 시작 즉 0번인덱스의 메모리 주소를 바탕으로 하나씩 증가하는 값이기 때문에 원하는 인덱스의 번호로 바로 접근할 수 있어 빠르게 읽을 수 있다.

 


public class Main {

	public static void main(String[] args) {
		String[] arr = {"사과","양상추","바나나","파프리카","포도"};
		System.out.println(arr[2]);
	}

}

위와 같이 arr[2] 라고 하면 배열의 3번째 인덱스에 있는 바나나가 출력이 된다.

 

 

배열의 검색

 

검색은 자료 구조 내에서 특정 값을 찾는 것이며 배열에서는 특정한 값이 어떤 인덱스에 있는지 찾는 것을 말한다.

 

검색은 읽기와 배열 안에 있는 값을 하나씩 확인해야 하기 때문에 어떤 인덱스에 값이 들었는지 바로 알기가 어렵다. 그래서 최악의 경우 배열의 첫번째부터 검색했는데 원하는 값이 마지막에 있다면 배열의 크기 만큼 찾는 과정이 생긴다. 이렇게 컴퓨터가 한번에 한 셀씩 확인하는 방법을 선형 검색이라고 한다.

 

 

 

배열의 삽입

 

삽입은 자료 구조에 새로운 값을 추가하는 것이며 배열에서는 배열의 길이를 늘려 새로운 값을 추가한다.

 

배열에 새로운 값을 추가하는 것은 배열의 어떤 위치에 값을 추가하는가에 따라 달라지는데 배열의 끝에 새로운 값을 추가하는 것은 배열의 마지막 위치에 한개만 추가하면 바로 삽입할 수 있다. 하지만 배열의 맨 처음이나 중간에 데이터를 삽입 하려면 배열의 위치를 한개씩 뒤로 밀어서 빈공간을 만든 다음에 추가해야 하기 때문에 많은 단계를 거쳐야 한다.

 

 

배열의 삭제

 

삭제는 자료 구조에 있는 값을 제거하는 것이며 배열에서는 배열의 값중 하나를 제거하는 것이다.

 

삭제를 하는 것은 원하는 인덱스 번호에 있는 값을 비워주면 되지만 문제는 배열에 빈공간이 생기기 때문에 빈공간 다음위치에 있는 값들을 한개씩 밀어주어야 하는 과정이 필요하다.