컴퓨터 알고리즘 2023-03-15 수업정리

Flow


Binary Search(이진 탐색)

BinarySearch(int A[], key, low, high)
{
	if(high < low) return -1;
	int mid = (low + high) / 2;
	if (A[mid] > key) return BinarySearch(A, key, low, mid-1);
	else if (A[mid] < key) return BinarySearch(A, key, mid+1, high);
	else return mid;
}
BinarySearch(int A[], int size, int key)
{
	int low = 0;
	int high = size-1;
	while(low <= high)
	{
		mid = (low + high) / 2;
		if(A[mid] > key) high = mid - 1;
		else if(A[mid] < key) low = mid + 1;
		else return mid;
	}
	return -1;
}

Divide and Conquer - Merge Sort


Merge Sort(병합 절렬)

Worst-Case Complexity of Merge Sort