배열은 데이터들을 하나의 변수에 저장한 선형 구조 |
배열은 많은 자료구조 중에서 가장 많이 사용할 것입니다.
안드로이드 어플리케이션 개발을 하던,
어떤 개발을 하던 데이터를 정리하는 것에 있어 가장 편하게 사용할 수 있습니다.
우리는 여기서 배열의 검색, 삽입, 삭제에 대한 최악의 조건들을 알아보겠습니다.
배열의 검색 |
배열은 메모리를 기준으로 할 때, 연관된 데이터들을 일괄적인 주소 값에 담겨집니다.
그렇기 때문에 배열을 선형리스트이기라고 합니다. 그래서 검색 또한 앞에서부터 한 칸씩 검색하게 됩니다.
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 - [나의 일기] - #담아두다 #일상 #다이어리 #어플리케이션
'내 맘대로 알고리즘' 카테고리의 다른 글
KiwiJuiceEasy, InterestingParty, Cryptography (0) | 2018.12.24 |
---|---|
가장 짧은 회문 구하기 ThePalindrome with java (0) | 2018.12.24 |
03. 팩토리얼 재귀함수 자바 (0) | 2018.12.19 |
02. 빅오 표기법 & 버블소트, 선택정렬 (0) | 2018.10.30 |
백준2750번, 수 정렬하기 (0) | 2018.08.03 |