병합 , 퀵 정렬

2022. 12. 4. 22:14개인공부/C++

병합 정렬

병합 정렬을 c++로 구현해보았다.

처음에 어떤알고리즘인지만 보고 구현하는 과정에서 새로운 배열을 생성하고 배열의 값이

null인 것도 계산하는 코드로 작성해서 코드가 너무 길고 가독성이 떨어지고 코드를 완성할 수 없을거 같아서

다른 블로그의 c++로 병합정렬을 구현한 것을 공부하고 이해한후에 코드를 작성하였다

 

다른코드를 확인하니 재귀함수를 이용하였는데 정말로 생각지도 못한 방법이였다.

내가 재귀 함수를 정확하게 사용해본적이 없었는데 병합정렬코드로 재귀함수에 대해서 공부할 수 있었다.

그후에는 내가 만든 가변배열에서 활용할 수 있도록 가변배열의 크기와 같은 배열을 만들고

둘의 주소를 보내고 가장 왼쪽과 오른쪽 지점을 보내서 병합배열을 구현하였다.

 

퀵 절렬

 

이후에는 퀵정렬도 만들어보았는데 코드 마지막줄에 rightside+1 을 rightside 로 두었다가 스택오버플로우가 발생해서

꽤나 오랜시간동안 고생을 했다........ 디버깅 과정은 어려웠다

결과적으로 마지막 right 배열에서 오른쪽 값이 커버리면 무한루프가 돌기때문에 +1을해주어야 했다.

'개인공부 > C++' 카테고리의 다른 글

class (1)  (0) 2022.12.06
노드  (0) 2022.12.06
정렬 알고리즘  (0) 2022.12.03
구조체, 동적할당  (0) 2022.12.03
함수 오버로딩  (0) 2022.12.03