PDA

View Full Version : حرفه ای: الگوریتمی مناسب برای فراخوانی هر داده با نیازمندی هایش



abolfazl-z
شنبه 06 دی 1393, 12:12 عصر
سلام دوستان

به عکس ذیل توجه کنید :


126922

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

حال اگر ما بخواهیم بر فرض مثال داده C را با تمام نیازمندی هایش بیرون بکشیم بهترین الگوریتم چیست ؟

راه حلی که به ذهن من رسید این هست که ابتدا داده یا داده هایی که می خواهیم را ابتدا در یک آرایه به نام list قرار دهیم در مثال بالا یعنی داده C را به آرایه list می افزاییم.

سپس آرایه list را در یک حلقه نامعین قرار می دهیم. (شرط ایستادن حلقه نامعین خانه بعدی list مقدا دهی نشده باشد)

در دور اول حلقه داده مورد نظر ما C که در ایندکس 0 قرار دارد نیازمندی هایش یعنی A فراخوانی می شود و اگر نیازمندی فراخوانی شده C در آرایه list قرار نداشت به آرایه افزوده می شود در غیر این صورت continue داده می شود.

پس نیازمندی A به آرایه افزوده می شود. تا اینجا آرایه list ما دارای داده های C A می باشد با این وجود حلقه نیز ادامه پیدا می کند و ایندکس بعدی که در خانه 1 است به A اشاره دارد و بررسی می شود که آیا A دارای نیازمندی هست یا خیر.

چون A دارای نیازمندی B است و B نیز در آرایه list قرار ندارد به آرایه list افزوده می شود و در نهایت در دور آخر که B نیازمندی ندارد و هیچ داده ایی دیگری به آرایه list افزوده نمی شود حلقه به پایان می رسد و آرایه list ما شامل داده های C A B می

شود.

الگوریتم شما چیست ؟

[ویرایش 1]

می توانیم در قسمت جستجو در پایگاه داده هر بار که کوئری می زنیم یک شرطی دیگری اضافه کنیم که خروجی ما شامل داده های داخل list نباشد.

abolfazl-z
یک شنبه 07 دی 1393, 10:07 صبح
دوستان کسی نظری نداره ؟ :متفکر:

این الگوریتم بهینه است ؟ الگوریتم دیگری مد نظر ندارید ؟