جستجوی دودویی در حالت 4 و 5 متغیر mid
یکی از روشهای جستجو در ساختمان داده جستجویدودویی یا binary search است. در این نوشته الگوریتم جستجویباینری را با 4 و 5 متغیر MID برای شما حل میکنیم.
پیشنهاد نویسنده: در ارتباط با الگوریتمهای مرتب سازی بخوانید.
جستجوی دودویی در حالت 4 و 5 متغیر mid
جستجوی باینری با 4 متغیر MID
شکل جستجوی دودویی با 4 متغیر MID به شکل زیر است:
مرتبه زمانی جستجوی دودویی با 4 متغیر 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 به شکل زیر است:
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]
ارسال پاسخ