반응형

C++ 5

C++ 포인터 개념 잡기 - 배열 관련 개념

본인, C언어에서 포인터를 너무 대충하고 넘어갔다. C++를 배우고 있는 지금, 지금이라도 포인터의 개념을 잡아보자. 사실 이건 포인터의 개념 전체는 아니고, 재귀함수로 주어진 배열의 모든 요소의 합을 구하는 거 하다가 내가 아래의 개념을 몰라서 이해가 안된다는 사실을 깨닫고 정리한다. #include using namespace std; int main() { int arr[] = { 1,2,3,4,5 }; int* p1; //배열의 이름(시작주소) 포인터 - 분리형 p1 = arr; int* p2; //배열의 첫번째 요소의 주솟값 포인터 -분리형 p2 = &arr[0]; int* p3 = arr; //배열의 이름(시작주소) 포인터 - 합체형 int* p4 = &arr[0]; //배열의 첫번째 요소의 ..

data lab 2023.10.26

C++ 순열(permutation) - 대학교 컴공 2학년 자료구조 과목

순열이란 무엇인가 순열 P. 우리 고등학교 확통시간에 다 배웠죠? 기억나죠? 하지만 저도 내용은 기억 안나고 그저 배웠다는 사실만 기억나는 타입이기 때문에 이러고 퉁치고 넘어갈 생각은 없습니다. 순열이란, 서로다른 배열요소를 순서를 고려하여 배열하는 경우입니다. 예를들어 nPr 이라고 하면, n개의 배열요소 중에 r개를 뽑아 순서를 고려하여 배열하는 경우의 수입니다. 수업에 나온 코드 예시 void Permutations(char* a, const int k, const int m) { int i; if (k == m) { for (i = 0; i

data lab 2023.10.25

C++ 재귀 이진 검색 (Recursive binary search) - 대학교 컴공 2학년 자료구조 과목

재귀 이진 검색이란 무엇인가 2023.10.23 - [코딩 data lab] - 이진 검색(binary search)이란 무엇일까? - 대학교 컴공 2학년 자료구조 과목 재귀 이진 검색은, 전 게시물에서 다루었던 이진 검색을 재귀함수의 형식으로 구현할 수 있도록 만든 알고리즘이다. 수업에 나온 예시코드 int rbs(int* a, const int x, const int left, const int right) { if (left a[middle]) return rbs(a, x, middle + 1, right); else return middle; } return -1; } 코드 분석 구하고자 하는 x의 값이 a[middle]보다 작을 경우에는 right의 값을 middle-1 로 변경하여 다음에 시행..

data lab 2023.10.24

C++ 선택정렬 (selection sort)이란 무엇일까? - 대학교 컴공 2학년 자료구조 과목

이 내용은 컴퓨터공학과인 내가 2학년 때 자료구조 과목에서 배우는 내용이다. 고3 때도 배운 적 있는 거 같긴 하다. 막 버블정렬 이런 거 배우면서. 그만큼 기초적인 내용이라는 거겠지? 아아~ 난 퇴화했다~ 아무튼 시작해 보겠다. SelectionSort - 선택정렬의 정의선택정렬이란 무엇일까? 주어진 배열을 맨 앞부터 쭉 읽어나가 최솟값을 찾아 맨 앞의 배열요소에 위치시키고, 두 번째부터 쭉 읽어나가 읽은 배열요소 중 최솟값을 두 번째에 위치시키고, 세 번째부터 쭉 읽어나가... 를 반복해, 배열요소를 오름차순으로 정렬해 주는 알고리즘이다. 바로 코드로 가보겠다.수업 때 나온 선택정렬의 예시코드void SelectionSort(int* a, const int n) { for (int i = 0; i <..

data lab 2023.10.22
반응형