Study/알고리즘
[백준알고리즘] 2750번 : 수 정렬하기
연계중
2017. 10. 22. 04:18
반응형
자료구조는 배열과 ArrayList를 이용하였고,
알고리즘은 버블 정렬, 퀵 정렬로 문제 풀이를 하였습니다.
1. 버블 정렬
1.1) 배열을 이용한 버블 정렬
- 우선 배열의 경우 정적으로 크기를 지정해줘야 합니다. 이 문제에서는 수의 개수가 주어지기 때문에 수의 개수만큼 배열의 크기를 지정하였습니다.
- 버블정렬은 정렬할 수의 크기의 -1만큼 회전하기 때문에 배열의 크기를 이용하여 이중루프를 사용했습니다.
1.2) ArrayList를 이용한 버블 정렬
- ArrayList의 경우 크기를 지정하지 않아도 데이터가 추가·삭제될 때마다 자동으로 크기가 할당되기 때문에 따로 크기를 지정할 필요가 없었습니다.
2. 퀵 정렬
2.1) 배열을 이용한 퀵 정렬
- 퀵 정렬의 핵심 개념은 분할 정복(divide and conquer)과 순환(recursion)입니다.
- 우선 피벗을 정렬할 수의 가운데 값으로 지정해 주었습니다. 피벗을 기준으로 분할하여 리스트를 나눈 뒤, 재귀호출하여
정렬하는 방법입니다.
2.2) ArrayList를 이용한 퀵 정렬
- ArrayList의 경우는 배열과 크게 다르지 않습니다. 다만, 고정된 크기가 아니기 때문에 add를 하는 순간 크기도 그만큼 커지므로 추가된 인덱스에 +1 만큼에 위치한 값을 삭제해 주었습니다.
반응형