شبكة بحوث وتقارير ومعلومات

مرحبا بكم في شبكة بحوث وتقارير ومعلومات

اليوم الأربعاء 22 مايو 2024 - 10:59 ص


اخر المشاهدات
الأكثر قراءة


عناصر الموضوع




القسم العام

[ تعرٌف على ] خوارزمية الاختيار # أخر تحديث اليوم 2024/05/22

تم النشر اليوم 2024/05/22 | خوارزمية الاختيار

حالات خاصة

عندما يكون i=1 عندها على الخوارزمية إيجاد العدد الأول من حيث الترتيب أي اصغر قيمة في القائمة وهذه المهمة بسيطة جدا وإيجاد هذه القيمة يتم عن طريق بحث خطي مع متغيِّر إضافيّ وها هي طريقة لفعل هذا: int FindMin(int[] A)
{
int min=A ;
for(int j=1;j<=A.length;j++)
{
if(A[j]<A )
{
min=A[j];
}
}
return min;
} وحالة أخرى هي i=n وعندها يجب ايجاد القيمة الكبرى وبطريقة مشابهة لايجاد القيمة الصغرى.

مقدمة

خوارزمية الاختيار هي طريقة بحث فعّـالة حيث تُعطَى الخوارزمية عدد i, والهدف هو إيجاد العدد ال-i في القائمة بعد التصنيف -SORTING- هناك عدة طرق لإيجاد هذا الهدف وقد تم التوصل إلى خوارزمية فعالة بزمن خطي – linear time algorithm-

اختيار بالتصنيف

نبدأ أولا بالطريقة السهلة وهي تتم عن طريق تحويل الاختيار إلى تصنيف ثم التوجه للعدد المطلوب أي: int select(int[] A,int i)
{
return (A.sort())[i]
} هذه الطريقة صحيحة ولكن الوقت الذي تحتاجه هو: ((O(nlog(n ونريد ان نصل لخوارزمية فعالة بوقت خطي بالنسبة للمدخل!

الخوارزمية الخطية

هذه الخوارزمية تستخدم طريقة الاستدعاء الذاتي (العودية) وهي كالتالي:
اسم هذه الخوارزمية سيكون: اختيار إذا n=1 نرجع القيمة الوحيدة الموجودة وهو بمثابة العدد ال -i
إذا n>1 حينها:
– قسم ال-n أعداد في القائمة ل- ⌊
n / 5

{displaystyle lfloor n/5rfloor } حيث كل قائمة تحوي 5 أعداد وقائمة أخيرة تحوي البواقي وهي بكبر:n mod 5
– جِد القيمة الوسطى للقوائم (تستطيع ان تصنف ثم تجد لكل قائمة القيمة الوسطى)
– استدعي اختيار لايجاد القيمة الوسطى،x, ل ⌊
n / 5

{displaystyle lfloor n/5rfloor } الاعداد التي وجدتها في 2
– قسم القائمة حول x بواسطة partition ولنقل أن الأعداد في القائمة السفلى عددها k والقائمة العليا هي n-k
– استدعي اختيار بشكل ذاتي لايجاد العدد ال-i في القائمة السفلى إذا: i≤k أو العدد ال- i-k الأصغر إذا i>k
تحليل زمن الخوارزمية
معادلة الاستدعاء الذاتي:
T
(
n
)

T
(
n / 5
)
+
T
(
7

n / 10
)
+
O
(
n
)
.
{displaystyle T(n)leq T(n/5)+T(7cdot n/10)+O(n).} وحلها كالتالي:
T
(
n
)

c

n

(
1
+
(
9 / 10
)
+
(
9 / 10 ) 2
+

)

O
(
n
)
.
{displaystyle T(n)leq ccdot ncdot (1+(9/10)+(9/10)^{2}+cdots )in O(n).}

شرح مبسط

خَوَارِزمِيَّةُ الاِختِيَارِ (بالإنجليزية: selection algorithm)‏ هي خوارزمية لإيجاد مكان عدد بالترتيب حسب التصنيف، وتعد هذه الخوارزمية من أشهر الخوارزميات لأنه يمكن تطبيقها بزمن خطي ولاستخداماتها المتعددة في علوم الحاسوب والطريقة التي تتم بها عن طريق الاستدعاء الذاتي أو recursion

 
التعليقات

شاركنا رأيك



أقسام شبكة بحوث وتقارير ومعلومات عملت لخدمة الزائر ليسهل عليه تصفح الموقع بسلاسة وأخذ المعلومات تصفح هذا الموضوع [ تعرٌف على ] خوارزمية الاختيار ويمكنك مراسلتنا في حال الملاحظات او التعديل او الإضافة او طلب حذف الموضوع ...آخر تعديل اليوم 05/05/2024


اعلانات العرب الآن