Engineering Note

선택 정렬의 재귀적 구현 본문

Computer Science/Data Structure & Algorithm

선택 정렬의 재귀적 구현

Software Engineer Kim 2021. 4. 7. 19:55

선택정렬

  • 기본적인 정렬 알고리즘
  • 오름차순을 기준으로 설명하면 0번 인덱스부터 마지막 인덱스 에서 최소값을 찾아 0번 인덱스에 위치 시키고 다시 1번 인덱스부터 마지막 인덱스에서 최소값을 찾아 1번 인덱스에 위치시킨다.
  • 위 과정을 반복한다.

문제 해결 과정

반복문을 통한 문제해결

  • 선택 정렬의 핵심은 최소값을 찾는 알고리즘이다.
    • 최소값을 찾는 Min(int list[],int fn, int ln)함수 구현
      • 배열의 주소와 첫 구간인덱스 번호와 마지막 구간 인덱스 번호를 주면 첫 구간 다음 인덱스부터 마지막 인덱스 까지 비교하면서 최소 값을 찾도록 알고리즘을 구현했다.
    • Sort(int list[], int size)함수 구현 배열의 주소와 사이즈를 매개변수로 주면 반복문으로 Min()함수에 첫구간 값을 변경하면서 최소값을 구하고 Swap()함수로 첫번째 인덱스와 최소값을 교환하도록 알고리즘을 구현

 

재귀적으로 문제해결

  • 위의 정렬을 반복하는 과정이 재귀적으로 구현이 가능 하기 때문에 재귀 함수를 통해서도 구현해 보았다.
    • 첫번째 호출 된 SelectionSort에서 firstindex와 lastindex에서 최소값을 찾아서 firstindex에 위치시키고 다시 SelectionSort가 firstindex+1에서 lastindex에서 최소값을 찾아서 firstindex+1에 최소값을 위치시키도록 구현했다.

Min함수 없이 SelectionSort 재귀적 구현

 

Min함수 없이 SelectionSort 재귀적 구현

'Computer Science > Data Structure & Algorithm' 카테고리의 다른 글

Naver제출 소스코드 저장용  (0) 2021.04.13
영지(territory) 선택 : (large)  (0) 2021.04.08
List  (0) 2021.02.24
알고리즘 효율성 분석  (0) 2021.02.19
알고리즘  (0) 2021.02.14
Comments