본문 바로가기

Study/자료구조3

C++) 삽입 정렬 (Insertion Sort) 삽입 정렬은 필요할 때마다 데이터를 하나씩 정렬된 부분에 삽입하는 방식이다.  삽입 정렬은 아래와 같은 순서로 진행된다.정렬되지 않은 다음 데이터를 선택한다.선택 된 데이터를 임시 저장한다.정렬된 데이터를 다음 인덱스로 덮어 씌우며, 임시 저장된 데이터와 비교한다.비교 조건에 따라 임시 저장된 데이터를 리스트 인덱스에 삽입한다.void InsertionSort(int* list, int size){ for (int i = 1; i 0 && list[j - 1] > temp; j--) { list[j] = list[j - 1]; } // 삽입 list[j] = temp; }}  참조) Insertion sort - Wikip.. 2025. 1. 16.
C++) 버블 정렬 (Bubble Sort) 버블 정렬은 배열의 두 수를 선택한 뒤, 그 두 수가 정렬되었다면 놔두고, 아니라면 두 수를 바꾸는 방식으로 진행된다. 버블 정렬은 아래와 같은 순서로 이루어진다.맨 앞과 그 다음 데이터를 비교 한다.앞 데이터가 크면 swap 한다.정렬이 완료되었을 시, sorted 값을 true로 변경하면서 추가 비교를 건너뛴다.void BubbleSort(int* list, int size){ for (int i = size; i > 0; i--) { bool sorted = false; for (int j = 0; j list[j + 1]) { std::swap(list[j], list[j + 1]); s.. 2025. 1. 15.
C++) 선택 정렬 (Selection Sort) 선택 정렬은 정렬되지 않은 데이터(리스트)에 대해 가장 작은 데이터를 찾아 가장 앞 데이터와 교체하는 과정을 반복해 가장 작은 데이터부터 가장 큰 데이터까지 순서대로 정렬하는 것이다. 선택 정렬은 아래와 같은 순서로 이루어진다.주어진 리스트 중에 제일 작은 값(최솟값)을 찾는다.그 값과 맨 앞에 위치한 값을 교체한다 (std::swap)맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다.void SelectionSort(int* list, int size){ int min_index = 0; for (int i = 0; i list[j]) min_index = j; } std::swap(list[i], list[min_index]);.. 2025. 1. 15.