내 맘대로 알고리즘

01. 배열과 집합

배열은 데이터들을 하나의 변수에 저장한 선형 구조


배열은 많은 자료구조 중에서 가장 많이 사용할 것입니다.

안드로이드 어플리케이션 개발을 하던,

어떤 개발을 하던 데이터를 정리하는 것에 있어 가장 편하게 사용할 수 있습니다.


우리는 여기서 배열의 검색, 삽입, 삭제에 대한 최악의 조건들을 알아보겠습니다.


 배열의 검색


배열은 메모리를 기준으로 할 때, 연관된 데이터들을 일괄적인 주소 값에 담겨집니다.

그렇기 때문에 배열을 선형리스트이기라고 합니다. 그래서 검색 또한 앞에서부터 한 칸씩 검색하게 됩니다.

A,B,C,D라는 배열에 D를 검색하기 위해서는

앞에서부터 A,B,C,D 순으로 검색하기 때문에 4가지 원소 중, N번 째로 검색되게 됩니다.





 배열의 삽입


삽입은 셀을 한 칸씩 미룬 후에 자리를 얻습니다.

그리고 그 후에 해당 데이터를 집어넣게 되는 구조입니다.

그렇기 때문에 데이터를 미루는 과정에서 N회, 

삽입 하는 과정에서 1회의 최악 조건을 볼 수 있습니다.



 배열의 삭제


삭제는 삽입의 역순입니다.

 자리를 비운 후에 데이터를 한 칸씩 옮기는 구조입니다.

그렇기 때문에 데이터를 삭제 하는 과정에서 1회,

데이터를 옮기는 과정에서 N-1의 최악 조건을 볼 수 있습니다.

집합은 데이터들을 하나의 변수에 저장한 중복이 없는 선형 구조


집합은 자료구조 중에서 Set을 의미합니다.

배열과 비슷한 구조를 가지고 있지만 Set은 데이터 내에 중복되는 값을 갖고 있지 않는 것이 특징입니다.



 집합의 삽입

Set은 중복된 데이터가 없어야하기 때문에 삽입시에 데이터를 한 번 검색해줍니다.

그리고 그 후에 데이터를 삽입합니다.

데이터를 검색하는 과정인 N과

데이터를 삽입하는 과정의 N+1이 최악의 경우로

볼 수 있습니다.




1인 개발자 감자튀김입니다.

안드로이드 어플리케이션을 개발하고 있습니다.

2018/10/21 - [나의 일기] - (리뷰) 시간표 어플리케이션 - 담다

2018/07/15 - [나의 일기] - #담아두다 #일상 #다이어리 #어플리케이션