- 정렬 알고리즘을 이용하여 시간복잡도, 프로그래밍의 동작시간 감소
- 알고리즘 중요성을 파악 할 수 있다.
- 효율적인 알고리즘 작성에 대한 이해를 할 수 있다.
- 어떤 알고리즘을 적용하느냐에 따라서 시간이 천차 만별로 다르다.
1. 선택 정렬 O(N^2) ⇒ 비효율
알고리즘
- 매 순회마다 가장 작은 인덱스를 찾아서 가장 앞으로 보내주겠다.
- ex) 30000개의 0~999 범위의 수를 정렬한 다고 했을때 O(N^2) ⇒ 1초 이상의 시간이 걸린다.
- ex) 30000개의 모든 원소가 7인 배열의 선택 정렬을
<aside>
😀 배열의 값이 이미 정렬되있던 아니던 시간이 비슷하게 걸린다.
</aside>
<aside>
😀 작은 값을 찾아서 맨 앞으로 보낸다!!
</aside>
2. 버블 정렬 O(N^2) ⇒ 더 비효율
알고리즘
- 선택 정렬보다 더 많은 시간이 소요된다. ⇒ 더 효율적인 정렬 알고리즘을 설계해보면서 효율적인 알고리즘의 필요성을 배울 수 있다.
- 인접한 두 원소를 확인하여, 정렬이 안되있다면 위치를 서로 변경한다.
- ex) 30000개의 0~999 범위의 수를 정렬한 다고 했을때 O(N^2) ⇒ 2초 이상의 시간이 걸린다.
- ex) 30000개의 모든 원소가 7인 배열의 선택 정렬을