전체 글 115

[알고리즘] 버블정렬, 단순 선택 정렬, 단순 삽입 정렬

버블 정렬 비교 횟수 3n(n-1) / 4 시간복잡도 O(n^2) 으로 효율이 좋지않은 알고리즘 단순 선택 정렬 비교 횟수 n(n-1) / 2 단순 삽입 정렬 비교 횟수 n^2 /2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 #include #define Swap(type, x, y) do{type..

알고리즘 2021.10.04

[알고리즘] 복잡도 구하기

복잡도란? 알고리즘의 성능을 객관적으로 평가하는 기준이다. 복잡도 종류 시간 복잡도 : 실행에 필요한 시간을 평가하는 것 공간 복잡도 : 기억영역과 파일 공간이 얼마나 필요한가를 평가하는 것 복잡도 구하는 방법 처음 한번만 실행하는 경우 : O(1) 이라고 표기한다. n에 비례하는 횟수만큼 실행하는 경우 : O(n) 이라고 표기한다. 실행횟수 복잡도 1 O(1) n/2 O(n) n O(n) 컴퓨터는 n / 2번이나 n번이나 똑같다. 2개이상의 복잡도 구하기 2개이상의 복잡도를 구하는 식은 다음과 같다. 더 높은 쪽의 복잡도를 우선시 한다. 전체 복잡도는 차원이 가장 높은 복잡도를 선택한다. O(f(n)) + O(g(n) = O( f(n) , g(n) ) 1

카테고리 없음 2021.10.01

[c언어] 메모리 동적할당

동적할당이란? 데이터 영역과 스택 영역에 할당되는 메모리의 크기는 컴파일 타임(compile time)에 미리 결정됩니다. 하지만 힙 영역의 크기는 프로그램이 실행되는 도중인 런 타임(run time)에 사용자가 직접 결정하게 됩니다. 이렇게 런 타임에 메모리를 할당받는 것을 메모리의 동적 할당(dynamic allocation)이라고 합니다. malloc() 함수 #include void *malloc(size_t size); 할당하고자하는 메모리 크기를 바이트 단위로 전달받는다. 함수가 실행되면 메모리공간을 찾는다. 이렇게 찾은 메모리공간의 첫번째 바이트 공간을 가리키는 주솟값을 반환한다. 공간을 찾지 못할 경우 널포인터를 반환한다. 주솟값을 반환받기 떄문에 메모리공간에 접근하려면 포인터를 사용해야한..

카테고리 없음 2021.09.30