개인 공부 (23.07~

[JAVA] 알고리즘을 위한 자료구조 (알고리즘, 자료구조 무엇인가?)

Song쏭 2023. 7. 28. 18:13

[Index]

▶ 알고리즘 

▶ 자료구조

▶ 알고리즘과 자료구조의 관계

 

알고리즘! 이 단어는 일상생활에서 많이 쓰는 단어이고 

설명은 못하더라도 느낌상으로 알고리즘~ 음~ 알 수 있다.

다만 설명하라고 하면..

그 유튜브에서 알고리즘으로 나한테 적절한 컨텐츠를 보여주잖아~

그게 알고리즘이지! 라고 할 것이다.

 

알고리즘에 대해서 쉽게 알고 가자.

컴퓨터가 따라 할 수 있도록
문제를 해결하는 절차나 방법을 자세히 설명하는 과정.


더 풀어서 설명하자면,

인간은 컴퓨터에게 일을 시킨다. 그 일을 시키려면 인간이 먼저 어떻게 풀지 알고 있어야한다.
그럼 인간이 어떻게 문제를 풀 것인지 절차나 방법을 설명하는 과정이 알고리즘인것이다.

+추가정보) 알고리즘 중 가장 기본 알고리즘은 무엇일까?
'정렬 알고리즘'
: 자료구조 기반으로 순서대로 나열하는 연산을 하는 알고리즘.
종류로는 대표적으로 선택정렬, 삽입정렬, 버블정렬, 합병정렬, 퀵정렬이 있다. 


 

 

자료구조에 대해서 쉽게 알고 가자.
자바 자료 구조 유형

자료구조 Data Structure.
자료=데이터.
A data structure is defined as a format for arranging, processing, accessing, and storing data. 
데이터 정렬, 처리, 접근, 저장을 위한 형식. 데이터들을 000식으로 저장해서 쓰겠다~라고 하는 것.

+ 추가정보) 자바에서 가장 널리 사용되는 자료구조 종류들
Array, List, Map, Set, Stack, Queue


+ 추가정보) 자료구조를 정리하며 위의 표를 보니, 자바 컬렉션 프레임워크는 뭐지? 궁금해져서 적어본다.
Java Collections Framework
=> 단어 파헤치기.
Java Collections : Collections 모아놓은 것을 의미하고, Java Collections이면 자바에서의 모음집이니까 업무에 많이 쓰이는 자료구조를 모아놓은 것을 의미.
Framework : Library랑 비교를 해서 이해하자면,
Library는 미리 만들어 둔 유용한 클래스들의 모음집이고, 내가 원하는 것을 자유롭게 골라쓰는 거라면,
Framwork는 동일하게 유용한 클래스들의 모음집이지만, 딱 특정한 클래스들만을 모아놓은 모음집.

Java Collections Framework : 업무에 많이 쓰이는 자료구조를 모아놓은 것인데, 딱 특정한 클래스들만 모아놓은 모음집.
Collection Interface

 

알고리즘과 자료구조는 서로 밀접한 관계를 가진다.

효율적인 알고리즘은
효율적인 자료구조와 함께 사용될 때 최고의 성능을 발휘할 수 있다.

ex) 우리가 익히 아는 정렬 알고리즘(대표 : 선택정렬, 삽입정렬, 버블정렬, 합병정렬, 퀵정렬)을 구현할 때,
Array나 List와 같은 적절한 자료구조를 선택하면 정렬 과정이 더 빠르고 효율적으로 이루어진다.

알고리즘과 자료구조를 잘 이해하고 적절히 사용하면 프로그램의 성능을 향상시키고, 
복잡한 문제를 더 효율적으로 해결할 수 있다.
따라서 프로그래밍과 컴퓨터 과학 분야에서 이 두 가지 개념을 학습하고 익히는 것은 매우 중요하다.

 

* 수업과 구글링을 통한 개인적인 공부 기록입니다:)