유한한 단계를 통해 문제를 해결하기 위한 절차나 방법이다.
주로 컴퓨터용어로 쓰이며, 컴퓨터가 어떤 일을 수행하기 위한 단계적 방법을 말한다.
간단하게 다시 말하면 어떠한 문제를 해결하기 위한 절차하고 볼 수 있다.
컴퓨터 분야에서 알고리즘을 표현하는 방법은 크게 두 가지
APS과정
APS과정의 목표 중의 하나는 보다 좋을 알고리즘을 이해하고 활용하는 것
무엇이 좋은 알고리즘인가?
주어진 문제를 해결하기 위해 어떤 알고리즘을 사용해야 하는가?
알고리즘의 성능 분석 필요
예)
알고리즘의 작업량을 표현할 때 시간복잡도로 표현한다.
시간복잡도
알고리즘의 성능
시간 복잡도 함수 중에서 가장 큰 영향력을 주는 n에 대한 항만을 표시
계수는 생략하여 표시
예)
요소 수가 증가함에 따라 각기 다른 시간복잡도의 알고리즘은 아래와 같은 연산 수를 보인다.
배열이란 무엇인가
배열의 필요성
1차원 배열의 선언
Arr = list()
, Arr = []
, Arr = [1, 2, 3]
, Arr = [0] * 10
2개 이상의 자료를 특정 기준에 의해 작은 값부터 큰 값, 혹은 그 반대의 순서대로 재배열하는 것
정렬 과정
시간복잡도: O(n^2)
[55, 7, 78, 12, 42]
를 버블 정렬하는 과정(오름차순)
첫 번째 패스
두 번째 패스
세 번째 패스
네 번째 패스
정렬 끝
코드로 구현 (오름차순)