PDA

View Full Version : سوال: راهنمایی در مورد جستجوی ترتیبی و دودویی



hamidreza70
شنبه 03 آبان 1393, 22:49 عصر
سلام دوستان خسته نباشید
من میخوام الگوریتم جستجوی ترتیبی و دودویی رو به زبان C# پیاده سازی کنم که آرایه رو از یک فایل تکست بخونه بعد جستجو رو انجام بده
ممنون میشم راهنمایی کنید
البته سرچ دودویی رو به شکل زیر
int[] a = new int[20] { 1, 2, 5, 10, 12, 13, 15, 20, 22, 25, 27, 29, 30, 32, 40, 50, 60, 70, 80, 90 };
int num = System.Convert.ToInt32(textBox1.Text);
bool find = false;
int low = 0;
int high = 19;
while (high >= low && !find)
{
int mid = (int)(high + low) / 2;
if (a[mid] == num)
find = true;
else if (num > a[mid])
low = mid + 1;
else high = mid - 1;
}
if (find)
label2.Text = "FOUND";
else label2.Text = "NOT FOUND"; نوشتم همونطور که دیدید آرایه رو خودمون تعریف کردیم
حالا من میخوام آرایه رو از فایل txt بخونم ممنون میشم راهنماییم کنید چطور اینکارو انجام بدم باتشکر

mortezasar
شنبه 03 آبان 1393, 23:04 عصر
سلام جست و جو جست و جو جست و جو

http://msdn.microsoft.com/en-us/library/ms143368%28v=vs.110%29.aspx

hamidreza70
یک شنبه 04 آبان 1393, 15:44 عصر
با تشکر از شما دوست گرامی
من انجام دادم برنامه فایلو میخونه ولی ارور میده
string path = @"D:\Test.txt";
using (StreamReader sr = File.OpenText(path))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{

int num = System.Convert.ToInt32(textBox1.Text);
bool find = false;
int low = 0;
int high = 19;
while (high >= low && !find)
{
int mid = (int)(high + low) / 2;
if (s[mid] == num)
find = true;
else if (num > s[mid])
low = mid + 1;
else high = mid - 1;
}
if (find)
label2.Text = "FOUND";
else label2.Text = "NOT FOUND";

vahidganji
یک شنبه 04 آبان 1393, 17:32 عصر
میشه یه کمکی هم به این تاپیک کنین:متفکر::عصبانی++:
http://barnamenevis.org/showthread.php?473688-%D8%AE%D8%B7%D8%A7-%D8%AF%D8%B1-%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87&p=2123798#post2123798