본문 바로가기

c++7

[C++] 선택 정렬 (Selection Sort) 알고리즘 정리에서는 알고리즘에 대해 공부하면서 배운 내용을 정리해보겠다. 먼저 선택 정렬에 대해 알아보겠다. 선택 정렬은 가장 작은 것을 하나 뽑아서 맨 앞에 두고, 남은 것 중에서 또 작은 것을 뽑아서 두번째에 두면서 계속 진행하여 결국 모든 원소들을 정렬하는 방법이다. 코드로 구현해보면 #include int main() { int i, j, min, index, temp; int array[10] = { 1, 10, 5, 8, 7, 6, 4, 3, 2, 9 }; for (i = 0; i < 10; i++) { min = 9999; for (j = i; j < 10; j++) { if (array[j] < min) { min = array[j]; index = j; } } temp = array[i].. 2020. 5. 6.
9. stl vector 다루기 stl의 vector를 다루면서 배운 점을 정리해보겠다. 1. stl vector 사용법 #include vector 벡터이름; - 벡터는 앞쪽이 막혀 있는 형태로 앞쪽에는 원소를 추가/제거할 수 없고 뒤쪽에만 추가/제거가 가능하다. 2. 벡터의 크기 지정 선언 - 만약 벡터의 크기를 미리 정의해놓고 싶다면 벡터이름(N); 이렇게 쓰면 된다. 3. 벡터 함수들 * 템플릿 형식 template class vector - T는 vector 컨테이너 원소의 형식 * 생성자 vector v v는 빈 컨테이너이다. vector v(n) v는 기본값으로 초기화된 n개의 원소를 갖는다. vector v(n, x) v는 x값으로 초기화된 n개의 원소를 갖는다. vector v(v2) v는 v2 컨테이너의 복사본이다. .. 2020. 5. 3.
8. 배열 다루기 배열을 공부하면서 배운 점을 정리해보도록 하겠다. 1. 이차원 배열 동적 메모리 할당 및 초기화 int** arr = new int*[sizeY]; for(int i = 0;i < sizeY; i++){ arr[i] = new int[sizeX]; memset(arr[i], 0, sizeof(int) * sizeX); } 2. 배열 선언 및 상수로 초기화 int c[10] = {0, }; 이렇게 정수형 배열 c를 선언하면 0이 10개 있는 배열이 만들어진다. 3. 배열 메모리 해제 for(int i = 0;i < sizeY; ++i) delete[] arr[i]; delete[] arr; 4. 배열 복사 - 똑같은 원소 가진 배열 하나 더 만들기 #include copy(src, src+n, dst); .. 2020. 5. 3.
7. 정렬 다루기 정렬을 다루면서 배운 점을 정리해보겠다. ● sort (#include 사용) 1. 오름차순 sort sort(arr, arr+10); 여기서 10은 배열 arr의 크기이다. 2. 내림차순 sort bool desc(int a, int b){ return a>b; } sort(arr, arr+10, desc); 사용자가 함수를 정의해서 정렬을 어떻게 할 것인지 정할 수 있다. 3. 벡터를 사용한 정렬 sort(v.begin(), v.end(), greater()); → 내림차순 정렬 sort(v.begin(), v.end(), less()); → 오름차순 정렬 ● bubble sort 구현 void BubbleSort(int arr[], int n){ int i, j; int temp; for(i = 0.. 2020. 5. 3.