عضو کانال یوتیوب ما شوید.

جستجوی دودویی در حالت 4 و 5 متغیر mid

جستجوی دودویی در حالت 4 و 5 متغیر mid
جستجوی دودویی در حالت 4 و 5 متغیر mid

جستجوی دودویی در حالت 4 و 5 متغیر mid

یکی از روش های جستجو در ساختمان داده جستجوی‌دودویی یا binary search می باشد؛ در این نوشته الگوریتم جستجوی‌باینری را با 4 و 5 متغیر MID برای شما حل می کنیم.

همراه ما باشید.

 

پیشنهاد نویسنده : در ارتباط با الگوریتم های مرتب سازی بخوانید.

 

 

جستجوی دودویی در حالت 4 و 5 متغیر mid

جستجوی باینری با 4 متغیر MID

شکل جستجوی دودویی با 4 متغیر MID به شکل زیر می باشد:

شکل جستجوی دودویی با 4 متغیر MID
شکل جستجوی دودویی با 4 متغیر MID

مرتبه زمانی جستجوی دودویی با 4 متغیر MID به شکل زیر می باشد:

مرتبه زمانی جستجوی دودویی با 4 متغیر MID
مرتبه زمانی جستجوی دودویی با 4 متغیر MID

کد جستجوی دودویی با 4 متغیر MID به شکل زیر می باشد:

 

جستجوی باینری با 5 متغیر MID

شکل جستجوی دودویی با 5 متغیر MID به شکل زیر می باشد:

شکل جستجوی دودویی با 5 متغیر MID
شکل جستجوی دودویی با 5 متغیر MID

مرتبه زمانی جستجوی دودویی با 5 متغیر MID به شکل زیر می باشد:

 

int bsfour(int arr[], int x, int low, int high)
{
	if(low<=high)
	{
		int middle[5];
		middle[1]=(low+high)/5;
		middle[2]=middle[1]*2;
		middle[3]=middle[1]*3;
		middle[4]=middle[1]*4;

		if(arr[middle[1]]==x)
			return middle[1];
		else if(arr[middle[2]]==x)
			return middle[2];
		else if(arr[middle[3]]==x)
			return middle[3];
		else if(arr[middle[4]]==x)
			return middle[4];
		else if(arr[middle[1]]>x)
			return bsfour(arr, x, low, middle[1]-1);
		else if(arr[middle[2]]>x)
			return bsfour(arr, x, middle[1]+1, middle[1]-1);
		else if(arr[middle[3]]>x)
			return bsfour(arr, x, middle[2]+1, middle[3]-1);
		else if(arr[middle[4]]>x)
			return bsfour(arr, x, middle[3]+1, middle[4]-1);
		else if(arr[middle[4]]<x)
			return bsfour(arr, x, middle[4]+1, high);
	}
	return -1;
}

 

مرتبه زمانی جستجوی دودویی با 5 متغیر MID
مرتبه زمانی جستجوی دودویی با 5 متغیر MID

کد جستجوی دودویی با 5 متغیر MID به شکل زیر می باشد:

 

int bsfive(int arr[], int x, int low, int high)
{
	if(low<=high)
	{
		int middle[5];
		middle[1]=(low+high)/6;
		middle[2]=middle[1]*2;
		middle[3]=middle[1]*3;
		middle[4]=middle[1]*4;
		middle[5]=middle[1]*5;

		if(arr[middle[1]]==x)
			return middle[1];
		else if(arr[middle[2]]==x)
			return middle[2];
		else if(arr[middle[3]]==x)
			return middle[3];
		else if(arr[middle[4]]==x)
			return middle[4];
		else if(arr[middle[5]]==x)
			return middle[5];
		else if(arr[middle[1]]>x)
			return bsfive(arr, x, low, middle[1]-1);
		else if(arr[middle[2]]>x)
			return bsfive(arr, x, middle[1]+1, middle[1]-1);
		else if(arr[middle[3]]>x)
			return bsfive(arr, x, middle[2]+1, middle[3]-1);
		else if(arr[middle[4]]>x)
			return bsfive(arr, x, middle[3]+1, middle[4]-1);
		else if(arr[middle[5]]>x)
			return bsfive(arr, x, middle[4]+1, middle[5]-1);
		else if(arr[middle[5]]<x)
			return bsfive(arr, x, middle[5]+1, high);
	}
	return -1;
}

 

نظرات خود را در ارتباط با این برنامه برای ما بنویسید.

موفق باشید.

برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]