목록정렬 (4)
뽕구의 개발일지
백준 #10817 세 수https://www.acmicpc.net/problem/10817 세 정수 A,B,C 가 주어지고 정렬하여 가운데 값을 출력하면 되는 문제입니다. STL sort 함수를 이용해 금방 풀었습니다. 구현#include #include using namespace std;int Number[3];int main() { std::cin >> Number[0] >> Number[1] >> Number[2]; sort(Number, Number + 3); std::cout 마치며정렬 알고리즘들이 내부 로직이 어떻게 구현되었는지 앞전에 공부 해보았기 때문에, 이제 STL을 사용하여 시간 단축하는데 더 초점을 맞춰야겠습니다. sort 함수 외에도 여러 STL 함수들을 공부해서 문제에 적용..
삽입 정렬선택, 버블, 삽입 정렬 다음으로 세번째 순서, 삽입 정렬입니다.삽입 정렬은 아래와 같이 이해하였습니다. "원소를 이전 순서에 이미 정렬된 원소들과 비교해 작은 수가 되는 위치에 넣는다." 최악의 경우 O(N^2) 시간 복잡도를 갖지만 이전 인덱스의 수들이 정렬이 되어있다는 가정 때문에 모든 원소를 비교하지 않아 정렬 중 성능이 좋은편이라고 합니다. 나동빈 님의 알고리즘 강좌를 보고 구현해보았습니다.구현#include #include using namespace std;int main() { int j, temp; int arr[10] = { 1,10,5,8,7,6,4,3,2,9 }; //비교 횟수 == 원소 갯수 -1 == i = 9 for (int i = 0; i arr[j + 1]) ..
백준 #2751 수 정렬하기https://www.acmicpc.net/problem/2751 버블 정렬 공부하면서 이번 문제는 버블정렬로 풀어야지! 했는데 계속 시간 초과가 났습니다. 분명히 2750 문제랑 똑같았다고 생각했는데 원인을 찾아보니 입력 수가 1,000,000 으로 늘어난 걸 캐치를 못했어요 ㅠㅠ그래서 오래 걸리는 버블이랑 선택 정렬로 풀어도 #2750은 풀렸는데 #2751은 안풀렸습니다. 그래서 이번에는 C++ STL 함수 sort()를 사용했습니다. "algorithm.h" 에 포함되어 있는 함수이니까 #inlcude 해주세요~ Sort() 는 퀵 정렬을 기반으로 힙 정렬과 삽입 정렬이 혼합된 방식으로 구현되어 있다고 하네요.따라서 O(N^2) 시간 복잡도를 갖는 퀵 정렬과 다르게 O(..
백준 #2750 수 정렬하기https://www.acmicpc.net/problem/2750 가장 기본인 정렬 알고리즘을 먼저 해보려고 합니다.나동빈 님 알고리즘 유투브 영상을 참고하면서 구현하고 있는데요. 원소와 비교하여 가장 작은 수를 선택해 맨 앞으로 보내는 선택정렬 알고리즘을 사용해보았습니다.저는 선택 정렬 알고리즘은 아래와 같이 이해했습니다. 현재 원소를 모든 원소와 비교하여, 가장 작은 수를 맨 앞으로 보내라. 모든 원소를 다 돌리다는 것은 결국 시간 복잡도가 높다는 뜻이겠네요 때문에, 선택 정렬의 시간 복잡도는 O(N^2) 입니다. /*나동빈 님 유투브에서 추가 이해를 위한 설명 내용입니다.*/예를 들어 10개 원소 1~10이 있을 때 모든 수를 비교하려면 55번의 비교연산을 수행해야 합니다..