c++ (5) 썸네일형 리스트형 [c++] 퀵 정렬 (quick sort) 구현하기 이번 포스팅에서는 지난 포스팅에 이어 퀵 정렬에 관해 이야기해보려고 합니다. 지난번에는 퀵 정렬에 대한 개념과 정렬 과정을 글로 정리해봤다면 이번 포스팅에서는 실제 c++ 구현을 해보면서 설명하려고 합니다. 설명이 궁금한 분들께서는 지난 포스팅을 참고하시고 오면 더욱 도움이 될 것 같습니다. 먼저 c++ 전체 코드를 살펴보겠습니다. 줄 번호를 따라 각각의 동작을 설명하도록 하겠습니다. 기본적으로 한번 따라서 작성해보면서 코드를 분석하면 더욱 도움이 될 것으로 생각됩니다. 3: quickSort 함수부에서 2곳에 swap 코드가 필요합니다. 비슷한 동작을 수행하는 반복된 부분을 처리하기 위해 전처리문을 활용했습니다. auto를 쓰면 다양한 타입에서의 swap을 한번에 쓸 수 있기 때문에 유용합니다. 6: .. 선택정렬 (selection sort) 구현하기 (c++) 이번 포스팅에서는 선택정렬을 직접 구현해보고 코드에 관해 설명해보려고 합니다. 선택정렬에 관한 자세한 내용은 이전 포스팅에서 참고하시면 좋을 것 같습니다. 거두절미하고 바로 코드를 살펴보도록 하겠습니다. c++ 코드 아래는 10개의 수열을 선택정렬 방식으로 오름차순 정렬하는 코드입니다. 그렇게 길지 않아서 쉽게 확인할 수 있습니다. main 문은 그저 선택정렬을 수행하고 배열을 출력하고 있습니다. 따라서 4번째 줄부터 있는 selection_sort(int s, int e) 부분을 살펴보도록 하겠습니다. 이전 버블정렬 구현코드와 유사하게 이번에도 함수의 파라미터는 시작 인덱스와 끝 인덱스가 있습니다. 시작 인덱스는 배열의 첫번째 인덱스와 같고, 끝 인덱스는 배열의 마지막 인덱스에서 1보다 큰 값입니다. .. 버블정렬 (bubble sort) 구현하기 (c++) 이번 포스팅에서는 버블정렬을 c++로 구현해보려고 합니다. 버블정렬에 관한 설명은 이전 포스팅에서 자세히 설명하였습니다. 따라서 여기서는 c++ 구현 코드를 위주로 설명을 하려고 합니다. 사실 버블정렬은 워낙 간단한 정렬 방법이기 때문에 코드도 복잡하지 않습니다. 아마도 반복문을 작성하는 방법에 관해 공부하다가 2중 루프를 써야하는 연습 예제로 활용하기 좋을 것 같습니다. 우선 빠르게 코드부터 보도록 하겠습니다. 몇 줄 안되는 간단한 버블정렬 코드입니다. main 문을 제외하고 bubble_sort 함수부분만 보면 총 11줄인데 이마저도 for 루프가 2개 밖에 없습니다. 그래도 차근차근 한번 살펴보도록 하겠습니다. 우선 정렬하고자 하는 배열을 생각하기 편하게 전역변수로 정의하였습니다. 오름차순으로 정렬.. [c++] 계산기 구현하기(코드) 이전 포스팅(https://programming-byeblue.tistory.com/2)에서는 계산기를 구현하기 위해 알아야 하는 후위표기법에 대해서 설명했다면 이번에는 그것을 바탕으로 코드를 작성하는 과정에 대해 다뤄보려고 합니다. 후위표기법에 대한 설명이 궁금하신 분들은 이전 포스팅 링크를 먼저 참고하시는게 좋을 것 같습니다. 먼저 c++로 작성한 사칙연산 계산기 코드 전체를 공개합니다. 해당 코드는 0을 포함한 자연수가 입력값으로 들어오는 것을 가정했고, +, -, *, / 연산만 가능한 코드입니다. 추가적인 연산이나 음수, 소수가 반영되는 계산기는 해당 코드를 바탕으로 직접 짜보시는 것을 추천드립니다. 사용한 라이브러리는 stack만 사용하였습니다. STL을 전혀 쓰지 않는 코드도 작성가능하겠지만.. [c++] 병합정렬 (merge sort) 10줄짜리 간단 코드 안녕하세요 병합정렬 (merge sort) 에 대해 간단히 알아보고 하단에 외우기 쉽게 짠 c++ 코드를 소개하겠습니다. 병합정렬, 합병정렬 두 가지 혼용되서 쓰이는 것 같은데 그냥 머지소트라고 부르는게 더 익숙하네요. 정렬 알고리즘은 굉장히 다양한 종류가 있어요. 자료의 특성이나 상황에 따라 각각 쓰임새가 다르겠지만 대부분의 일반적인 경우라면 코딩테스트 + 현업에 필요한 정렬 알고리즘 종류는 5개 미만인 것 같습니다. 그 중 한가지라고 생각되는 알고리즘이 바로 머지소트인데요. 머지소트는 분할정복 (divide and conquer)의 개념을 익히면서 같이 알아두면 좋은 것 같습니다. (추후 기회가 된다면 분할정복에 대해서도 포스팅을 해보면 좋을 것 같네요) '하나의 큰 문제를 작은 문제로 쪼개서 푼 다.. 이전 1 다음