컴퓨터가 따라 할 수 있도록 문제를 해결하는 절차나 방법을 자세히 설명하는 과정. 더 풀어서 설명하자면, 인간은 컴퓨터에게 일을 시킨다. 그 일을 시키려면 인간이 먼저 어떻게 풀지 알고 있어야한다. 그럼 인간이 어떻게 문제를 풀 것인지 절차나 방법을 설명하는 과정이 알고리즘인것이다.
+추가정보) 알고리즘 중 가장 기본 알고리즘은 무엇일까? '정렬 알고리즘' : 자료구조 기반으로 순서대로 나열하는 연산을 하는 알고리즘. 종류로는 대표적으로 선택정렬, 삽입정렬, 버블정렬, 합병정렬, 퀵정렬이 있다.
자료구조에 대해서 쉽게 알고 가자. 자바 자료 구조 유형 자료구조 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와 같은 적절한 자료구조를 선택하면 정렬 과정이 더 빠르고 효율적으로 이루어진다.
알고리즘과 자료구조를 잘 이해하고 적절히 사용하면 프로그램의 성능을 향상시키고, 복잡한 문제를 더 효율적으로 해결할 수 있다. 따라서 프로그래밍과 컴퓨터 과학 분야에서 이 두 가지 개념을 학습하고 익히는 것은 매우 중요하다.