본문 바로가기

이론31

AVL 트리 Binary Search Tree에서 트리에 삽입되는 순서에 의해서 한쪽으로 치우친 트리가 형성될 수 있다. 균형잡힌 이진트리의 경우 탐색에 O(logn)의 시간복잡도가 걸리지만 한쪽으로 치우칠 경우 O(n)의 시간복잡도가 걸리게 된다. 따라서 이러한 단점을 해결한 트리구조 중에는 AVL 트리가 있다. AVL트리에는 Balance Factor라는 것이 존재한다.이것은 왼쪽 서브 트리와 오른쪽 서브 트리의 높이 차이이다. 이 Balace Factor의 크기가 2이상일 경우 치우쳐진 트리라고 판단하고 흐트러진 균형을 맞추기위한 조치가 취해져야한다. 균형을 맞추기 위한 회전은 4가지 유형이 존재한다. 1. LL회전 2. RR회전 3. LR회전 4. RL회전 2015. 10. 5.
각도 Degree와 Radian 각도의 표기법으로는 우리가 흔히 쓰는 Degree과 Radian이 있습니다.DirectX에서는 표준으로 Radian을 사용하고 있기 때문에Degree를 Radian으로 변환하는 일이 잦습니다. 매번 까먹는 Degree To Radian 매크로#define DegToRad(x) (x*180/PI); 1 radian = 180 / PI 임을 숙지하자.. 2015. 10. 1.
TCP/IP - four way handshake 1. 클라이언트는 서버로 FIN(Finish) 세그먼트를 보내고 클라이언트에서 서버로의 데이터 흐름을 종료한다.2. 서버가 FIN을 수신하면 수신한 순서번호(Sequence Number)+1의 ACK를 보낸다.3. 서버는 클라이언트로 FIN을 전송한다.4. 클라이언트는 수신한 번호의 순서번호에 1을 더한 ACK를 보낸다.TCP 연결은 전이중 방식으로 각 방향으로 shutdown이 독립적으로 이루어져야한다. 클라이언트에서 4번 과정 후 상태를 TIME_WAIT 상태라고 한다 이는 서버에서 오는 잉여 패킷을 받기 위한 시간이다... TIME_WAIT 상태를 2MSL상태라고도 한다.MSL은 Maximum Segment Lifetime의 줄임말이며 이는 세그먼트(패킷)이 네트워크에서 폐기 되기 전까지 살아남을 .. 2015. 10. 1.
TCP/IP - three way handshake 1. 클라이언트는 접속하고자 하는 서버의 포트번호와 클라이언트의 초기순서번호(ISN)을 지정한 SYN(Synchronization) 세그먼트를 보낸다.2. 서버는 클라이언트에서 온 SYN 세그먼트에 대한 ISN+1 ACK(Acknowledgement) 세그먼트를 응답으로 보내고 서버의 초기순서번호(ISN)을 포함한 SYN 세그먼트로 응답한다.3. 클라이언트는 서버로부터 온 SYN 에 대한 ISN+1 ACK로 확인응답을 보낸다.위의 3개의 세그먼트에 의해 연결이 설정된다. 2015. 10. 1.