Stack/Algorithm

[유니티 C#] 퀵 정렬(Quick sort) 구현

Seo_re: 2022. 10. 6. 21:30
반응형

 

 

 

 

이전에 C로 퀵정렬을 구현한 글을 썼었는데, 육안으로 과정이 보이는 글이 아닌 코드만 작성되어있는 글이어서 유니티 C#으로 퀵 정렬 과정을 육안으로 확인할 수 있도록 제작해봤다.

만들면서 파티션 정렬하는 과정에서 high index가 파티션 배열의 범위를 벗어나는 버그가 있었는데, 단순히 조건문 순서상의 오류라 바로 수정했다. (생각보다 그 글이 조회수가 좀 됐는데, 글을 보신 분들이 문제 제기를 안했다는게 의아함)

 

 

 

 

1. 유니티 C# 퀵정렬 프로젝트

- 코드가 아닌 유니티 프로젝트로 올립니다. (깃허브)

 

GitHub - realnity09/QuickSort_CS

Contribute to realnity09/QuickSort_CS development by creating an account on GitHub.

github.com

 

 

 

 

2. QuickSort 컴포넌트 설명

- TargetArrSize : 배열의 길이를 지정할 수 있다.

- Min, Max : 배열 요소의 최소값과 최대값. (지정한 범위 안에서 랜덤 함수로 지정된다.)

- Delay : 정렬하는 속도 (값이 높을수록 느려집니다. WaitForSeconds값.)

※ Scene에 버튼 2개가 붙어있는데, Create arr 버튼으로 배열을 생성하고, Quick sort 버튼을 누르면 정렬이 시작되며 정렬 과정을 눈으로 확인할 수 있습니다.

low index - Red, high index - Blue, pivot index - cyan

※ 정렬이 완료되면 UI element가 초록색으로 변합니다.

 

 

 

3. 퀵정렬 설명

 

퀵정렬(Quick Sort) 구현

퀵정렬(Quick Sort) - 찰스 앤터니 리처드 호어가 개발한 알고리즘이다. - 평균 O(n log n)으로 매우 빠른 정렬속도를 자랑한다. - 기준(Pivot) 값을 기준으로 나머지 원소에 대해 대소관계를 비교하여 큰

srdeveloper.tistory.com

 

 

 

 

 

 

반응형