کد جستجوی دودویی در جاوا

بازدید: 856 بازدید

ما کد جستجوی دودویی در جاوا را پیاده سازی کردیم . پروژه کد جستجوی دودویی در آرایه یکی از تمرین های درس برنامه سازی پیشرفته و ساختمان داده ها می باشد. این جستجوی دودویی در آرایه با جاوا انجام می شود. یکی از اعمالی که به وفور در کامپیوتر انجام می گیرد ، عمل جستجو است . الگوریتم های مختلفی برای جستجو وجود دارند که در اینجا binary search در جاوا را پیاده سازی می کنیم.

روش کار جستجوی دودویی

یکی دیگر از اعمالی که در آرایه یک بعدی صورت می گیرد، جستجوی مقداری در یک آرایه است . جستجو می تواند به صورت ترتیبی یا دودویی انجام شود . البته جستجوی دودویی باید حتما در آرایه مرتب انجام شود اما جستجوی خطی در آرایه نا مرتب هم کار می کند . در این الگوریتم مقداری را در آرایه ای به طول n به طور خطی (ترتیبی) جستجو می کند.

اجرای این پروژه به این صورت می باشد n عدد(در اینجا خودمان ۵ تعیین کردیم)  را به عنوان  از ورودی می گیرد و در ادامه یک عنصر را جهت جستجو را از ورودی می گیرد و جتسجو می کند که آیا آن یک عنصر داخل آرایه وجود دارد یا نه . در صورتی که موجود بود پیغام Item exist را چاپ و در غیر این صورت پیغام Item not exist را چاپ می کند.

برای مشاهده عملکرد سورس کد این برنامه فیلم زیر با مشاهده بفرمایید

پیاده سازی جستجوی دودویی در جاوا

برای پیاده سازی جستجوی باینری  در جاوا ما از یک متد به نام BinarySearch استفاده میکنیم. وظیفه این متد این است که یک آرایه ، تعداد خانه های آن آرایه و آن item جهت جستجو را از ورودی می گیرد سپس برسی می کند که آیا آن مقدار item داخل اون آرایه موجود می باشد یا نه . در صورتی که مقدار item داخل آرایه موجود بود این تابع مقدار یک برمی گرداند و در غیر این صورت مقدار صفر برمیگرداند.

public static int bSearch(int x[], int n, int item)
{
int loc, found = 0, first = 0, last = n - 1;
while((first <= last) && (found==0))
{
loc = (first + last) / 2;
if(item < x[loc]) last = loc - 1; else if(item > x[loc])
first = loc + 1;
else
found = 1;
}
return found;
}

پس از برسی سورس کد binary search در جاوا تابع  خواهید دید که یک متغیر به نام found  تعریف شده است. در این حلقه For یک دور کل آرایه را پیمایش می کند و تک تک خانه های آرایه را برسی می کند و برسی می کند که مقدار فیلد جستجو (found) وجود دارد یا نه و این روال را تا آخر ادامه می دهد.

در صورتی که قصد دارید این سورس کد را تست کنید تابع زیر تابع Main شما خواهد بود :

public static void main(String[] args) {
int n = 5;
int item;
int[] x=new int[n];
Scanner sc= new Scanner(System.in);
System.out.println("Enter " + n + " ascending sorted numbers :");
for(int i = 0; i < n; i ++) x[i]=sc.nextInt(); System.out.print("Enter item to search : "); item=sc.nextInt(); if(bSearch(x, n, item)>0)
System.out.println("Item exist.");
else
System.out.println("Item not exist.");
}

مقادیر ورودی کد جستجوی دودویی

پس از اجرای این سورس کد جستجوی دودویی در آرایه با جاوا در صورتی که ورودی ها را به صورت مرتب و صعودی به صورت زیر وارد کنیم:

EnterBinSearch 300x119 - کد جستجوی دودویی در جاوا

 

 

 

 

 

سپس خروجی binary search در جاوا به صورت زیر می باشد:

EnterBinSearch2 300x44 - کد جستجوی دودویی در جاوا

 

 

 

امیدوارم که این پروژه جستجوی دودویی در جاوا براتون مفید بوده باشه و در صورت هر گونه سوال می تونید در قسمت نظرات همین مطلب از ما بپرسید و با مطالب سایت ایران فایلز همراه باشید.

مطالعه بیشتر