-
[알고리즘] 삽입정렬알고리즘/정렬 2019. 5. 21. 20:30
목표 기초적인 정렬 알고리즘 중 삽입 정렬 알고리즘에 대해 이해한다. 기초적인 장렬 알고리즘 중 삽입 정렬 알고리즘을 c++로 구현한다. 삽입 정렬 알고리즘이란? 삽입 정렬 알고리즘은 정렬된 위치에 삽입한다 하여 삽입 정렬 알고리즘이다. 자료 배열의 모든 요소를 정렬된 배열 부분과 비교하여. 자신의 위치에 삽입하는 알고리즘이다. 쉽게 일상에서 손안의 카드를 정렬하는 방법과 유사하다. 삽입 정렬 알고리즘의 예 31 8 45 73 3 삽입 정렬 알고리즘의 특징 배열의 모든 요소가 대부분 정렬되어 있는 경우 아주 효율적! 입력자료가 역순인 경우 최악의 경우로 n^2의 시간 복잡도를 가진다. 삽입 정렬 알고리즘의 구현 #include using namespace std; int main (){ int i, j,..
-
[알고리즘] 버블정렬알고리즘/정렬 2019. 5. 17. 16:34
목표 기초적인 정렬 알고리즘 중 버블 정렬 알고리즘에 대해 이해한다. 기초적인 정렬 알고리즘 중 버블 정렬 알고리즘을 c로 구현한다. 버블 정렬 알고리즘이란? 버블 정렬은 인접한 두개의 원소를 비교하여 정렬 구현하기는 쉽지만 성능은 매우 떨어진다. 버블 정렬의 예시 버블 정렬의 특징 정렬되어 있는 경우에도 교환이 일어난다. 교환작업이 매번 일어나 복잡하기 때문에 거의 쓰이지 않는다. 버블 정렬 알고리즘의 코드 구현(c++) #include using namespace std; int main(){ int n; cin >> n; int a[n]; for(int i = 0 ; i > a[i]; } for(int j = n-1; j >= 0; j--){ for(int i = 0 ; i < j ;i++){ if..
-
[알고리즘] 병합정렬알고리즘/정렬 2019. 5. 8. 00:21
목표 고급 정렬 알고리즘 중 병합 정렬 알고리즘에 대해 이해한다. 고급 정렬 알고리즘 중 병합 정렬 알고리즘을 c++로 구현한다. 병합 정렬 알고리즘이란? 병합 : 병합하다. 합쳐지다는 의미를 가진다. 정렬 : 항목들을 체계적으로 정리하는 과정 어떠한 자료구조를 합쳐서 정렬하는 방법 분할 정복 알고리즘의 하나이다 병합 정렬 알고리즘의 순서 분할 : 입력을 반으로 나눈다. 정복 : 반으로 나눈 전반부와 후반부를 독립적으로 정렬한다. 결합 : 정렬된 두 부분을 병합하여 정렬한다. 병합 정렬의 예 병합하는 과정 결합하는 구체적인 과정 병합 정렬 c++ 코드 #include #define MAX 8 using namespace std; int sort[MAX]; void mergin(int ary[], int ..
-
[알고리즘] 선택정렬알고리즘/정렬 2019. 5. 4. 22:14
목표 기초적인 정렬 알고리즘 중 선택 정렬 알고리즘에 대해 이해한다. 기초적인 장렬 알고리즘 중 선택 정렬 알고리즘을 c로 구현한다. 선택 정렬 알고리즘이란? 선택 : 가장 큰 수 또는 가장 작은 수를 선택 정렬 정렬 : 항목들을 체계적으로 정리하는 과정 가장 큰 수 또는 가장 작은 수를 선택하여 항목들을 체계적(오름차순, 내림차순)으로 정리하는 과정이다. 선택 정렬 알고리즘의 예 배열에 8, 31, 45, 73, 3을 저장하자. 선택 정렬 알고리즘의 특징 같은 레코드 값이 있는 경우 상대적인 위치가 바뀐다. 선택 정렬 알고리즘의 구현(c++) #include using namespace std; int main (){ int n; cin >> n; int a[n]; int last; for(int i ..