버블 정렬이란? 버블 정렬(bubble sort)은 인접한 원소와 비교하여 순서가 바뀌었으면 서로 교환하여 정렬하는 방법이다. 첫 번째 원소부터 비교를 시작하면 가장 큰 값이 마지막에 위치하게 되고, 그 다음에 나머지 n-1개의 원소에 대해서 이 과정을 실시하면 두번째로 큰 원소가 n-1번째에 위치하게 된다. 기존의 버블 정렬 코드는 아래와 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 void bubble_sort(int data[], int n) { int temp; int max; for (int i = n-1; i >= 1; i--) { for (int j = 0; j data[j + 1]) { temp = data[j]; data[j] = data[j + 1]; data[j ..
Binary Search 이진탐색이란? 데이터가 정렬되어 있는 배열에서 특정한 값을 찾아내는 알고리즘. 배열의 중간에 있는 임의의 값을 선택하여 찾고자 하는 값 x와 비교한다. x가 중간값보다 작으면 중간 값을 기준으로 좌측의 데이터들을, x가 중간값보다 크면 배열의 우측을 대상으로 다시 탐색한다. 순차 탐색 : 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 하나씩 확인 이진 탐색 : 정렬되어있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색 예시 이미 정렬되어있는 10개의 데이터 중에서 4인 원소를 찾는다고 해보자. 이진 탐색의 시간 복잡도 단계마다 탐색 범위를 2로 나누는 것과 동일하므로 연산 횟수는 O(log2N)�(log2�) 탐색 범위를 절반씩 줄여나가므로 시간 복잡도는 O(\..
SVM(지지 벡터 머신) 의 개념 - 서포트 벡터 머신(Support Vector machines, 이하 SVM) 모형은 고차원 또는 무한 차원의 공간에서 초평면을 찾아 이를 이용해 분류화 회귀를 수행한다. - SVM은 지도학습 기법으로 비-중첨(non-overlapping) 분할을 제공하며 모든 속성(attributes)을 활용하는 전역적(global) 분류 모형이다. - SVM은 최대마진을 가지는 선형판별에 기초하며, 속성들간의 의존성은 고려하지 않는다. - 직관적으로 자료를 군집별로 가장 잘 분리하는 초평면은 가장 가까운 훈련용 자료까지의 거리(=마진, margin)가 가장 큰 경우이며, 마진이 가장 큰 초평면을 분류기로 사용할 때, 새로운 자료에 대한 오분류가 가장 낮아진다. - 서포트벡터머신 모..
이더넷 프레임이란? - LAN의 2계층은 이더넷이라는 규칙이 적용됨 - 이더넷이 사용되는 주소 => MAC 주소 - 이더넷에서는 '이더넷 헤더'와 '이더넷 트레일러'를 데이터그램에 붙여서 '이더넷 프레임'으로 캡슐화를 함. 타입 : 페이로드에서 전송하는 데이터(3계층 PDU)의 종류를 특정하는 값 (IP 데이터그램이라면 16진수로 0800이 들어간다.) 페이로드 : 이더넷 헤더와 트레일러에 의해 캡슐화되는 3계층 PDU (전송되는 데이터) FCS : 에러 체크용 비트열 이더넷의 동작 - 허브에 의해 모든 기기에 도달한 프레임은 수신처 MAC 주소를 가진 기기 이외에는 파기함. - 동작 예시 ① 송신 컴퓨터가 유니캐스트로 프레임을 송신하면 모든 기기에 도달한다. ② 수신한 프레임의 수신처 MAC 주소가 자..
이번에는 콘솔창의 크기를 조절하고 출력되는 폰트와 배경의 색상을 조절하는 법을 소개하겠습니다. 시작하기에 앞서, 소스 파일에 다음과 같은 헤더를 입력해주세요. 1 2 #include cs 여기에서 헤더파일 window.h에 삽입되어있는 SetConsoleTextAttrbute 함수를 사용할 것입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include #include void textcolor(int foreground, int background); int main(){ for (int i=0; i
데이터 전송 방법 1. 유니캐스트 (Unicast) : 1대 1 데이터 통신 - 가장 일반적 2. 브로드캐스트 (Broadcast) : 1대 전체 - 전윈, 모두에게 보내는 데이터 통신 (세그먼트 내 모든 기기) 3. 멀티캐스트 (Multicast) : 1대 다수 - 지정된 복수의 기기로 메세지를 보내는 데이터 통신 Mac 주소 각각의 기기는 유니캐스트 주소를 적어도 한 개 가지고 있음 - 라우터처럼 복수의 인터페이스를 가진 기기는 인터페이스마다 유니캐스트 주소를 갖는다. - 유니캐스트의 주소는 유일해야 함 (같은 것이 없어야 함) - 반면, 멀티캐스트 주소는 같은 주소를 가진 기기가 여러 개 있어도 된다. => 멀티 캐스트 주소는 ‘그룹 번호’를 의미함 그래서 MAC 주소란? ..
프로그래머라면 한번쯤은 들어봤을 깃허브. 멀고도 가깝게 느껴지는데, 언제까지 안하고만 있을 순 없는 노릇! 차근 차근 깃허브를 시작해보자. 깃허브 시작하기 일단 https://github.com/ 에 가입한다. 이메일만 있으면 가입이 가능하다. 깃허브에 가입했다면 깃을 설치해야한다. 깃 다운로드 링크 : https://git-scm.com/downloads 작성자는 윈도우이므로, 윈도우 기준에서 설명하겠다. 방금 설치한 git bash로 다음 코드를 타이핑한다. git config 는 "configure"의 준말로, 처음에 깃을 설정할때 사용한다. user.name 후 큰따음표 사이에 본인의 이름을 넣으면 된다. 한번더 git config 명령어를 사용하여 자신의 이메일을 말한다. 조검 전에 github..