병합 , 퀵 정렬
2022. 12. 4. 22:14ㆍ개인공부/C++
병합 정렬
병합 정렬을 c++로 구현해보았다.
처음에 어떤알고리즘인지만 보고 구현하는 과정에서 새로운 배열을 생성하고 배열의 값이
null인 것도 계산하는 코드로 작성해서 코드가 너무 길고 가독성이 떨어지고 코드를 완성할 수 없을거 같아서
다른 블로그의 c++로 병합정렬을 구현한 것을 공부하고 이해한후에 코드를 작성하였다
다른코드를 확인하니 재귀함수를 이용하였는데 정말로 생각지도 못한 방법이였다.
내가 재귀 함수를 정확하게 사용해본적이 없었는데 병합정렬코드로 재귀함수에 대해서 공부할 수 있었다.
그후에는 내가 만든 가변배열에서 활용할 수 있도록 가변배열의 크기와 같은 배열을 만들고
둘의 주소를 보내고 가장 왼쪽과 오른쪽 지점을 보내서 병합배열을 구현하였다.
퀵 절렬
이후에는 퀵정렬도 만들어보았는데 코드 마지막줄에 rightside+1 을 rightside 로 두었다가 스택오버플로우가 발생해서
꽤나 오랜시간동안 고생을 했다........ 디버깅 과정은 어려웠다
결과적으로 마지막 right 배열에서 오른쪽 값이 커버리면 무한루프가 돌기때문에 +1을해주어야 했다.