관리 메뉴

Gyejoong's Information

[백준알고리즘] 2750번 : 수 정렬하기 본문

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 만큼에 위치한 값을 삭제해 주었습니다.


0 Comments
댓글쓰기 폼