جستجوی دودویی در ++c :
جستجوی دودویی یک الگوریتم معروف در علوم کامپیوتر است که برای جستجوی اطلاعات در مجموعههای داده سازماندهی شده استفاده میشود. در زبان برنامهنویسی ++C نیز این الگوریتم بسیار مفید است و در بسیاری از برنامهها مورد استفاده قرار میگیرد.
جستجوی دودویی بر روی یک مجموعه داده سازماندهی شده از اطلاعات اعمال میشود. این مجموعه از اطلاعات باید به صورت صعودی (یا نزولی) مرتب شده باشد. در این الگوریتم، مقدار میانهای از مجموعه انتخاب میشود و با مقدار مورد نظر مقایسه میشود. اگر مقدار مورد نظر کوچکتر (یا بزرگتر) از مقدار میانه باشد، جستجو از نصف چپ (یا راست) مجموعه ادامه مییابد. این عملیات تا زمانی ادامه مییابد که مقدار مورد نظر پیدا شود یا تا زمانی که مجموعه داده به صورت خالی تمام شود.
برای پیادهسازی جستجوی دودویی در ++C، ابتدا باید مجموعه داده را مرتب کنیم. سپس با استفاده از دستورات شرطی میتوانیم الگوریتم را پیادهسازی کنیم. در ابتدا، میانه مجموعه را محاسبه میکنیم و با مقدار مورد نظر مقایسه میکنیم. اگر مقدار مورد نظر بزرگتر از مقدار میانه باشد، جستجو را در نصف راست مجموعه ادامه میدهیم و در غیر این صورت، جستجو را در نصف چپ مجموعه ادامه میدهیم. این عملیات را به طور بازگشتی انجام میدهیم تا زمانی که مقدار مورد نظر پیدا شود یا تا زمانی که مجموعه داده به صورت خالی تمام شود.
الگوریتم جستجوی دودویی در ++C به صورت زیر پیادهسازی میشود:
“`C++
int binarySearch(int arr[], int target, int left, int right) {
if (right >= left) {
int mid = left + (right – left) / 2;
if (arr[mid] == target)
return mid;
if (arr[mid] > target)
return binarySearch(arr, target, left, mid – 1);
return binarySearch(arr, target, mid + 1, right);
}
return -1;
}
“`
در این پیادهسازی، آرایه arr به عنوان مجموعه داده و target به عنوان مقدار مورد نظر در نظر گرفته میشود. left و right نیز نشاندهندهٔ محدودهٔ جستجو در مجموعه داده هستند. اگر مقدار مورد نظر پیدا شود، این الگوریتم شاخهٔ مربوطه را برمیگرداند. در غیر این صورت، -1 برگردانده میشود که نشاندهندهٔ عدم وجود مقدار مورد نظر در مجموعه داده است.
با استفاده از الگوریتم جستجوی دودویی در ++C، میتوانیم به راحتی اطلاعات مورد نظر خود را در مجموعههای داده سازماندهی شده پیدا کنیم. این الگوریتم کارآمد و سریع است و معمولاً در برنامههایی که نیاز به جستجوی مکرر دارند، استفاده میشود.