응애맘마조

230426 강의 본문

공부/3D강의

230426 강의

TH.Wert 2023. 4. 26. 22:42

재귀함수를 끝내고 간단하게 빅오 표기법과 메모장으로 출력을 하는 fstream과 fopen을 강의했습니다.

먼저 빅오 표기법은 알고리즘의 효율성을 위해 표기합니다. 어떤 알고리즘을 수행하는 데 걸리는 시간을 시간 복잡도라고 하고 빅오 표기법으로 시간 복잡도를 표현할 때는 최고차항을 표기합니다.

표기하는 방법은 O(1)이나 O(n)처럼 표기하며 상수시간은 사용자의 컴퓨터 사양에 따라 달라지지만 전부 1로 취급합니다.

배열이나 vector, list를 봤을 때의 빅오 표기법은 배열이나 vector는 임의의 위치에 접근을 할 수 있기 때문에 O(1)이 되지만 list는 임의의 위치에 접근을 할 수 없고 처음 위치부터 가야 하기 때문에 최악의 상황은 마지막 노드에 위치할 수도 있기 때문에 O(n)이 되는 경우도 있습니다. 하지만 만약 반복적으로 순회를 한다면 전부 똑같아집니다. 그래서 O(n)이 됩니다.


콘솔 창 대신 메모장으로 출력을 하는 fstream, fopen을 했습니다. 이때 출력 할 파일 경로도 같이 적어야 되는데 디스크까지 포함된 경로를 절대 경로라고 합니다. 하지만 사용자마다 사용하는 경로가 다 제각각 다르기 때문에 경로를 쓰지 않았을 때 exe 파일이 있는 경로인 상대 경로를 사용하는 것이 좋습니다. 내부 함수인 is_open은 bool 형식으로 조건문을 사용하여 정상적으로 열렸을 때와 그렇지 않았을 때를 가정하고 코드를 작성하면 됩니다. ofstream은 파일명이 존재하지 않으면 실행시켰을 때 새로 생성합니다.

 

이렇게 하면 누구나 원할 때 텍스트로 된 파일을 열 수 있습니다. 하지만 의도한 데이터의 크기보다 용량이 너무 커진다는 단점이 있습니다.

 

출력을 할 때 텍스트를 코드에 작성할 때 띄어쓰기나 개행을 하면 단어 단위로 끊어서 출력을 하게 됩니다.


헤더파일 chrono는 시간을 측정하는 라이브러리입니다. 코드 실행부터 걸린 시간을 측정할 수 있습니다. 시간 출력 시 더 정확한 시간을 보기 위해 double형을 사용하면 자세히 볼 수 있습니다.

 

읽어주셔서 감사합니다.

'공부 > 3D강의' 카테고리의 다른 글

230428 강의  (0) 2023.04.30
230427 강의  (0) 2023.04.27
230425 강의  (0) 2023.04.25
230424 강의  (0) 2023.04.24
230421 강의  (0) 2023.04.23
Comments