23.05.09 (3/5)

CJB_ny·2023년 5월 9일
0

공부 요약

목록 보기
37/38

아침 운동
학교
언리얼
1 2 3 순
회의잠깐
튜터링

너무 피곤하고 집중이 잘 안됬음. 3/5

1. 뇌자극 C++ STL :

p380~p387
개떡같이 복습후 mutating algorithm 의 next_putation, partition잠깐 공부함.

partition(b, e, f) 순차열 원소를 특정 조건에 따라 분류할 때 사용한다.

p381에서 퀵소트에 pivot 값을 기준으로 큰값과 작은 값을 분류하듯이라는 말 부분에서

'퀵소트'다시 공부함.

int _data[6] = {4, 2, 1, 5, 7, 8};

void QSort(int* data, int start, int end)
{
	// 원소가 1개인 경우
	if (start >= end)
	{
		return;
	}

	int pivot = start;
	int i = pivot + 1;
	int j = end;
	int temp;

	while (i <= j)
	{
		while (i <= end && data[i] <= data[pivot])
		{
			++i;
		}

		while (j > start && data[j] >= data[pivot])
		{
			--j;
		}

		// i, j 엇갈림
		if (i > j)
		{
			temp = data[j];
			data[j] = data[pivot];
			data[pivot] = temp;
		}
		else
		{
			temp = data[i];
			data[i] = data[j];
			data[j] = temp;
		}
	}
	QSort(data, start, j - 1);
	QSort(data, j + 1, end);
}

int main()
{
	using namespace std;
	QSort(_data, 0, 5);

}

O(N log N)이 나오고
pivot을 기준으로 leftIdx, rightIdx가 반전될 때 pivot과 rightIdx를 스왑후
"분할 정복" 재귀함수를 돌린다.

참고한 블로그 : https://hongku.tistory.com/149

2. C++ 기초플러스

흉기급 두꺼운책
p187~193

double free에 대한 위험,

new 연산자를 통해 배열생성할때와 아닐때
"정적 바인딩"으로 컴파일 시간에 메모리 잡아 먹는 부분과
"동적 바인딩"을 통해 프로그램 실행시간에 메모리를 생성하는 방법

nullptr은 delete 사용하는 것이 안전하다 (아무 일도 일어나지 않는다)

3. 언리얼

Light 관리하는 부분 수정함

profile
https://cjbworld.tistory.com/ <- 이사중

0개의 댓글