알고리즘 5

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

버블 정렬 비교 횟수 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

[알고리즘]소수의 나열 (소수 구하기)

소수란? 소수 : 자기 자신과 1이외의 어떤 정수로도 나누어 지지 않는다. 즉, 2 ~ n-1 까지 나누려고 해도 나누어지지 않는 수이다. 1000이하의 소수 구하기 n이 소수인지를 검사하기 위한 for문 하나. 1과 본인의 값(1000)을 제외한 값으로 나눠주기 위해 모든 수를 차례로 스캔하는 for문 하나 안쪽 for 문에서 하나라도 나눠지는 수가 있다면 반복문을 중단하고 다음 수로 넘어간다. 나눠지는 수가 하나도 없다고 하면 마지막에는 결국 스캔한 값이랑 같아지게 되므로 i == j 조건을 추가 하여 출력해준다. 이 조건문은 안쪽 for문을 나왔을 때도 검사가 가능해야 하므로 for문의 초기화를 위한 선언은 for문 밖에서 정의 해준다. 위의 소수구하는 식의 문제점 1.n이 2또는 3으로 나누어 떨..

알고리즘 2021.09.30

[알고리즘]기수변환

기수란? 기수 : 수를 나타내는데 기초가 되는 수 10진법의 기수 : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 1의자리 : 9 10의자리 : 99 100의자리 : 999 까지 의 수를 나타낸다. 8진수의 기수: 0, 1, 2, 3, 4, 5, 6, 7 1의자리 : 7 10의자리 : 77 100의자리 : 777 까지 의 수를 나타낸다. 16진수의 기수 : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 , A, B, C, D, E, F 식전체를 평가 하기전에 피연산자의 값을 증가. 식전체를 먼저 평가하고 피연산자의 값을 증가. 기수변환 프로그램 다음은 기수로 변환하는 함수를 나타내었다. 반환할 숫자는 정수형태이기 때문에 unsigned 형식이어야 한다. n은 n진수로의 변환을 의미한다. dc..

카테고리 없음 2021.09.29

[알고리즘] 배열 요소 정렬 / 함수형식 매크로

배열요소 정렬 정수/정수 연산은 나머지를 버리고 정수부만 얻을 수 있다. 나머지 버리기에 매우 좋다. 배열요소의 앞뒤를 바꾸기와 순차적으로 정렬할 경우 같은 자료형의 새로운 변수를 사용하여 재배열 해준다. 가장 왼쪽 요소의 인덱스는 i 가장 오른쪽 요소의 인덱스는 n -1 -i 위그림 처럼 두값을 교환하는 과정을 함수형식 매크로로 구현하면 프로그램이 짧아지고 읽기도 쉬워진다. #define swap(type, x ,y) do{type t = x; x =y; y = t;} while(0) #define SQR(X) ((X)*(X)) 매크로 함수의 장단점 매크로 함수의 장점은 다음과 같습니다. 1. 매크로 함수는 단순 치환만을 해주므로, 인수의 타입을 신경 쓰지 않습니다. 2. 매크로 함수를 사용하면 여러 ..

알고리즘 2021.09.29