본문 바로가기

24 가을학기

(8)
[자료구조] 큐(Queue) 큐(Queue) 먼저 들어온 데이터가 먼저 나가는 자료구조. 선입선출 (FIFO: First-In First-Out)  큐의 삽입, 삭제 연산enqueue : 맨뒤에 새로운 요소 추가 dequeue : 맨앞의 요소를 반환선형 큐 배열을 선형으로 사용하여 큐를 구현(1차원 배열) 삽입을 계속하기 위해서는 요소들을 이동시켜야 함 front : 큐의 첫 번째 요소, rear : 큐의 마지막 요소 #include #include #define MAX_QUEUE_SIZE 5typedef int element;typedef struct{ int front; int rear; element data[MAX_QUEUE_SIZE];}QueueType;//오류 함슈void error(char *messag..
[자료구조] 스택 스택배열을 이용한 스택의 구현1차원 배열 stack[]가장 최근에 입력된 자료가 top 가장 먼저 들어온 요소를 인덱스 0에, 가장 최근에 들어온 요소를 stack[top] 에 저장 스택이 공백일 때 top = -1is_empty is_empty(S) :if top == -1 then return TRUE else return FALSEis_full(s) is_full(S) :if top == (MAX_STACK_SIZE -1) then return TRUE else return FALSEpushpush(s,x): if is_full(s) then error "Overflow" else { top = top++1 stack[top] = x ..
[머신러닝] Lab1_naive_bayes 데이터셋을 클래스(label) 값에 따라 분리 # Split the dataset by class values (i.e., labels), returns a dictionarydef separate_by_class(dataset): data_dict = dict() #빈 딕셔너리 data_dict 생성 for i in range(len(dataset)): vector = dataset[i] class_value = vector[-1] #데이터 포인트 vector 의 마지막 요소를 추출하여 class_value 에 저장 - 이 값은 해당 데이터 포인트의 클래스(라벨) 이라고 할 수 있다. if (class_value not in data_dict): data_dict[class_va..
[머신러닝] Lab1_linear_regression [Linear Regression] Implement from sctatch 오차 함수 설정def error_function(self, X, y): # define hypothesis f(x) # y는 실제 값(정답 라벨) h = np.dot(X, self.weights) + self.bias # compute error error = y - h # compute squared error # 평균 제곱 오차 (Mean Squared Error) 계산 mse = np.square(error).mean() return error, mse경사 하강법(Gradient Descent) 를 사용회귀 모델의 가중치/편향을 업데이트 def gradient_descent(se..
[머신러닝] Lab1_Logistic_regression Step 1 : Define Sigmoid Funtion def sigmoid(self, x): sig_x = (1/(1+np.exp(-x))) return sig_x시그모이드 함수를 정의함 Step 2: Define log likelihood funtion 실제 값 (y_true) 와 예측 값 (y_pred) 사이의 로그 가능도(log likelihood) 계산 모델이 예측한 값이 실제 값과 얼마나 일치하는지 측정하는데 사용 def log_likelihood(self, y_true, y_pred): # To avoid log 0 case, use some small value (e.g., 1e-7) y_pred = np.maximum(np.full(y_pred.shape, self.eps),..
[자료구조] 배열, 구조체, 포인터 #define MAX_DEGREE 101 // 다항식의 최대차수 + 1typedef struct { int degree; float coef[MAX_DEGREE];} polynomial;polynomial a = { 5, {10, 0, 0, 0, 6, 3} };​#define MAX_DEGREE 101typedef struct{ int degree; float coef[MAX_DEGREE]} polynomial;polynomial a = {5, {10,0,0,0,6,3}};배열(Array)같은 형의변수를 여러 개 만드는 경우에 사용하는 자료구조 타입이 같은 데이터들을 하나로 묶는 방법 배열 ADT 1차원 배열 int list[6]list[0]=100value = list[0]배열의 주소 list[..
[자료구조] 순환 순환(recursion) 이란?알고리즘이나 함수가 수행 도중에 자기 자신을 다시 호출하여 문제를 해결하는 기법   팩토리얼 프로그래밍 팩토리얼의 정의 (n)! 을 계산하는 함수 factorial int factorial(int n){ if(n n=3일 때 순환호출이 작동하는 방식 fac(3) -> fac(2) -> fac(1) -> 1 -> 1*2 -> 1*2*3 자기 자신의 함수를 호출 할 때 복귀할 주소, 매개변수, 지역변수를 스택으로부터 할당 받아서 구현 (=활성 레코드) 만약 순환 호출을 멈추는 구간 - 여기서는 if에 들어가는 순간 - 이 없다면 시스템 오류가 발생할 때가지 무한정 호출하게 된다  int factorial_iter(int n){ int k,v = 1; for(k=..
[자료구조] #1 자료구조와 알고리즘 프로그램 = 자료구조 + 알고리즘#define MAX_ELEMENTS 100 // 학생의 숫자를 할당받아 가장 높은 점수를 반환하는 프로그램int scores[MAX_ELEMENTS]; // 자료구조int get_max_score(int n) // 알고리즘{ int i, largest; largest = scores[0]; for(i=1; i largest){ largest = scores[i]; } } return largest; } 알고리즘의 기술 방법자연어로 표기된 알고리즘흐름도로 표현된 알고리즘유사코드로 표현된 알고리즘 - 알고리즘의 핵심적인 내용만 표현 C 로 표현된 알고리즘 - 많은 구체적인 사항들을 표현, 정확한 기술이 가능하다자료형..