process Burst time A 4 B 1 C 8 D 1 타임 슬라이스=10단위 A B C D A C C C 0 2 3 5 6 8 10 12 14 따라서 A는 8주기를 완료합니다.
목록이 정렬되면 이진 검색 기술을 사용하여 목록에서 항목을 찾을 수 있습니다. 이 절차에서 전체 목록은 두 개의 하위 목록으로 나뉩니다. 항목이 중간 위치에 있으면 위치를 반환하고, 그렇지 않으면 왼쪽 또는 오른쪽 하위 목록으로 점프하여 항목을 찾거나 범위를 초과할 때까지 동일한 과정을 다시 수행합니다. 이진 검색 기법의 복잡성 시간 복잡성 : O(1)은 최상의 경우입니다. 평균 또는 최악의 경우 O(log2 n). 공간 복잡성: O(1) 입력 및 출력 Input: A sorted list of data: 12 25
지수 검색은 두 배 또는 질주 검색이라고도 합니다. 이 메커니즘은 검색 키가 표시될 수 있는 범위를 찾는 데 사용됩니다. L과 U가 목록의 상한과 하한이면 L과 U는 모두 2의 거듭제곱입니다. 마지막 섹션의 경우 U는 목록의 마지막 위치입니다. 이러한 이유로 지수라고 합니다. 특정 범위를 찾은 후 이진 검색 기법을 사용하여 검색 키의 정확한 위치를 찾습니다. 지수 검색 기법의 복잡성 시간 복잡성: 최상의 경우 O(1)입니다. O(log2 i)는 평균 또는 최악의 경우입니다. 여기서 i는 검색 키가 있는 위치입니다. 공간 복잡성:
이진 검색 기술의 경우 목록은 동일한 부분으로 나뉩니다. 보간 검색 기술의 경우 절차는 보간 공식을 사용하여 정확한 위치를 찾으려고 시도합니다. 예상 위치를 찾은 후 해당 위치를 사용하여 목록을 분리할 수 있습니다. 매번 정확한 위치를 찾으려 하므로 검색 시간이 줄어듭니다. 이 기술은 항목이 균일하게 분포되어 있으면 항목을 쉽게 찾을 수 있습니다. 보간 검색 기법의 복잡성 시간 복잡성: 평균의 경우 O(log2(log2 n)), 최악의 경우 O(n)(항목이 기하급수적으로 분포된 경우) 공간 복잡성: O(1) 입력 및 출력 출력:
점프 검색 기술은 정렬된 목록에서도 작동합니다. 블록을 만들고 해당 블록에서 요소를 찾으려고 합니다. 항목이 블록에 없으면 전체 블록을 이동합니다. 블록 크기는 목록의 크기를 기반으로 합니다. 목록의 크기가 n이면 블록 크기는 √n이 됩니다. 올바른 블록을 찾은 후 선형 검색 기술을 사용하여 항목을 찾습니다. 점프 검색은 성능에 따라 선형 검색과 이진 검색 사이에 있습니다. 점프 검색 기술의 복잡성 시간 복잡도:O(√n) 공간 복잡성:O(1) 입력 및 출력 입력:정렬된 데이터 목록:10 13 15 26 28 50 56 88 94
선형 검색 기술은 가장 간단한 기술입니다. 이 기술에서는 항목을 하나씩 검색합니다. 이 절차는 정렬되지 않은 데이터 세트에도 적용됩니다. 선형 검색은 순차 검색이라고도 합니다. 시간 복잡도가 n O(n) 정도이기 때문에 선형이라고 합니다. 선형 검색 기법의 복잡성 시간 복잡성: 오(n) 공간 복잡성: O(1) 입력 및 출력 Input: A list of data: 20 4 89 75 10 23 45 69 the search key 10 Output: Item found at location: 4 알고리즘 linearSearch(
이진 검색과 마찬가지로 목록을 하위 목록으로 분리합니다. 이 절차에서는 두 개의 중간 중간 값을 사용하여 목록을 세 부분으로 나눕니다. 목록이 더 세분화되어 있으므로 키 값을 검색하는 시간이 단축됩니다. 삼항 검색 기법의 복잡성 시간 복잡도:O(log3 n) 공간 복잡성:O(1) 입력 및 출력 Input: A sorted list of data: 12 25 48 52 67 79 88 93 The search key 52 Output: Item found at location: 3 알고리즘 ternarySearch(array, s
버블 정렬은 비교 기반 정렬 알고리즘입니다. 이 알고리즘에서는 인접한 요소를 비교하고 교환하여 올바른 순서를 만듭니다. 이 알고리즘은 다른 알고리즘보다 간단하지만 몇 가지 단점도 있습니다. 이 알고리즘은 많은 수의 데이터 세트에 적합하지 않습니다. 정렬 작업을 해결하는 데 시간이 많이 걸립니다. 버블 정렬 기법의 복잡성 시간 복잡성: 최상의 경우 O(n), 평균 및 최악의 경우 O(n^2) 공간 복잡성: O(1) 입력 및 출력 Input: A list of unsorted data: 56 98 78 12 30 51 Output:
비영구적 CSMA는 MAC(Medium Access Control) 계층에서 작동하는 CMSA(Carrier Sense Multiple Access) 프로토콜의 비공격적 버전입니다. CMSA 프로토콜을 사용하면 둘 이상의 사용자 또는 노드가 여러 노드 또는 무선 스펙트럼의 일부를 연결하는 단일 케이블 또는 광섬유가 될 수 있는 공유 매체를 통해 데이터를 송수신합니다. Non-Persistent CSMA에서 송신국이 보낼 프레임이 있고 Busy 채널을 감지하면 중간에 채널을 감지하지 않고 임의의 시간 동안 기다렸다가 알고리즘을 다시
1-persistent CSMA는 MAC(Medium Access Control) 계층에서 작동하는 CMSA(Carrier Sense Multiple Access) 프로토콜의 공격적인 버전입니다. CMSA 프로토콜을 사용하면 둘 이상의 사용자 또는 노드가 여러 노드 또는 무선 스펙트럼의 일부를 연결하는 단일 케이블 또는 광섬유가 될 수 있는 공유 매체를 통해 데이터를 송수신합니다. 1-persistent CSMA에서는 송신국이 보낼 프레임이 있고 비지 채널을 감지하면 송신이 끝날 때까지 기다렸다가 즉시 전송한다. 확률 1로 전송하
P-persistent CSMA는 1-persistent CMSA와 non-persistent CMSA의 장점을 결합한 CMSA(Carrier Sense Multiple Access) 프로토콜의 접근 방식입니다. CMSA 프로토콜을 사용하면 둘 이상의 사용자 또는 노드가 여러 노드 또는 무선 스펙트럼의 일부를 연결하는 단일 케이블 또는 광섬유가 될 수 있는 공유 매체를 통해 데이터를 송수신합니다. p-persistent CSMA에서 송신국은 보낼 프레임이 있고 비지 채널을 감지하면 전송이 끝날 때까지 기다렸다가 확률 p로 전송한다
CSMA/CD(Carrier Sense Multiple Access with Collision Detection)는 MAC(Medium Access Control) 계층에서 작동하는 캐리어 전송용 네트워크 프로토콜입니다. 전송을 위한 공유 채널이 사용 중인지 여부를 감지하거나 듣고 채널이 비어 있을 때까지 전송을 연기합니다. 충돌 감지 기술은 다른 스테이션의 전송을 감지하여 충돌을 감지합니다. 충돌이 감지되면 스테이션은 전송을 중지하고 잼 신호를 보낸 다음 재전송하기 전에 임의의 시간 간격을 기다립니다. 알고리즘 CSMA/CD의
CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)는 MAC(Medium Access Control) 계층에서 작동하는 캐리어 전송용 네트워크 프로토콜입니다. 충돌이 발생한 후 처리하는 CSMA/CD(Carrier Sense Multiple Access/Collision Detection)와 달리 CSMA/CA는 충돌이 발생하기 전에 충돌을 방지합니다. 알고리즘 CSMA/CA의 알고리즘은 다음과 같습니다. 프레임이 준비되면 송신국은 채널이 유휴 상태인지 사용 중인
데이터 유형은 기본적으로 다른 컴퓨터 프로그램에서 사용할 수 있는 데이터 유형입니다. integer, float 등과 같은 유형을 나타내며, integer와 같은 공백은 4바이트, 문자는 1바이트 공백 등을 사용합니다. 추상 데이터 유형은 일련의 값과 일련의 작업에 의해 동작이 정의되는 특수한 종류의 데이터 유형입니다. 이러한 데이터 유형을 사용할 수 있으므로 추상이라는 키워드가 사용되며 다른 작업을 수행할 수 있습니다. 그러나 이러한 작업이 작동하는 방식은 사용자에게 완전히 숨겨져 있습니다. ADT는 원시 데이터 유형으로 구성되
스택은 후입선출 데이터 구조입니다. 스택은 표현식, 호출 및 재귀 전략 등을 평가하기 위해 다른 영역에서 사용됩니다. 스택에는 몇 가지 기본 작업이 있습니다. 여기에서 스택의 이러한 작업을 보고 스택 ADT를 사용하는 한 가지 예를 볼 것입니다. ADT(추상 데이터 유형)는 특정 종류의 데이터 유형으로, 그 동작은 값 집합과 연산 집합에 의해 정의됩니다. 이러한 데이터 유형을 사용할 수 있으므로 추상이라는 키워드가 사용되며 다른 작업을 수행할 수 있습니다. 그러나 이러한 작업이 작동하는 방식은 사용자에게 완전히 숨겨져 있습니다.
여기서 우리는 꼬리 재귀가 무엇인지 볼 것입니다. 꼬리 재귀는 기본적으로 재귀 함수를 함수의 마지막 문으로 사용합니다. 따라서 재귀 호출에서 돌아온 후 할 일이 없을 때를 꼬리 재귀라고 합니다. 꼬리 재귀의 한 예를 볼 것입니다. 예시 #include <iostream> using namespace std; void printN(int n){ if(n < 0){ return; } cout << n &
대기열은 선입선출 데이터 구조입니다. 대기열은 그래프 탐색 알고리즘 너비 우선 검색 등을 위해 다른 영역에서 사용됩니다. 대기열에는 몇 가지 기본 작업이 있습니다. 여기서 우리는 이러한 queue 작업을 볼 것이고, queue ADT를 사용하는 한 가지 예를 볼 것입니다. ADT(추상 데이터 유형)는 특정 종류의 데이터 유형으로, 그 동작은 값 집합과 연산 집합에 의해 정의됩니다. 이러한 데이터 유형을 사용할 수 있으므로 추상이라는 키워드가 사용되며 다른 작업을 수행할 수 있습니다. 그러나 이러한 작업이 작동하는 방식은 사용자에게
걸음 수 방법은 알고리즘을 분석하는 방법 중 하나입니다. 이 방법에서는 하나의 명령어가 실행되는 횟수를 계산합니다. 그로부터 알고리즘의 복잡성을 찾으려고 노력할 것입니다. 순차 검색을 수행하는 알고리즘이 하나 있다고 가정합니다. 각 명령어가 c1, c2, … 실행하는 데 시간이 걸리면 이 알고리즘의 시간 복잡도를 알아내려고 합니다. 알고리즘 횟수 비용 seqSearch(arr, n, 키) 나는 :=0 내가
이 섹션에서는 두 행렬을 곱하는 방법을 살펴보겠습니다. 행렬 곱셈은 이 조건을 만족하는 경우에만 수행할 수 있습니다. 두 행렬이 A와 B이고 차원이 A(m x n) 및 B(p x q)라고 가정하면 n =p인 경우에만 결과 행렬을 찾을 수 있습니다. 그러면 결과 행렬 C의 차수는 (m x q)가 됩니다. 알고리즘 matrixMultiply(A, B): Assume dimension of A is (m x n), dimension of B is (p x q) Begin if n is not same as p, t
상각 분석 이 분석은 간헐적 작업이 매우 느리지만 매우 자주 실행되는 대부분의 작업이 더 빠를 때 사용됩니다. 데이터 구조에서 해시 테이블, 분리 집합 등에 대한 분할 상환 분석이 필요합니다. Hash-table에서 탐색 시간 복잡도는 대부분 O(1)이지만 가끔 O(n) 연산을 수행하기도 한다. 대부분의 경우 해시 테이블에서 요소를 검색하거나 삽입하려는 경우 작업을 수행하는 데 일정한 시간이 소요되지만 충돌이 발생하면 충돌 해결을 위해 O(n)배 작업이 필요합니다. 집계 방법 집계 방법은 총 비용을 찾는 데 사용됩니다. 많은