خوارزمية الاختيار
في علم الحاسوب ، خوارزمية الاختيار هي خوارزمية لإيجادأصغر قيمة في مجموعة من القيم القابلة للترتيب، مثل الأرقام. تُسمى القيمة التي يجدهاإحصائية الترتيب th . يشمل الاختيار ، كحالات خاصة، مشاكل إيجاد العنصر الأدنى والوسيط والأعلى في المجموعة . تتضمن خوارزميات الاختيار خوارزمية الاختيار السريع وخوارزمية وسيط الوسائط . عند تطبيقها على مجموعة منبالنسبة للقيم، تستغرق هذه الخوارزميات وقتًا خطيًا .كما هو موضح باستخدام ترميز Big O. بالنسبة للبيانات المهيكلة مسبقًا، قد تكون الخوارزميات الأسرع ممكنة؛ كحالة قصوى، يستغرق الاختيار في مصفوفة مرتبة مسبقًا وقتًا.
بيان المشكلة
تأخذ خوارزمية مشكلة الاختيار كمدخلات مجموعة من القيم، وعددًا. يُخرجأصغر هذه القيم، أو في بعض صيغ المسألة، مجموعة منأصغر القيم. لكي يكون هذا التعريف دقيقًا، ينبغي أن يكون من الممكن ترتيب القيم من الأصغر إلى الأكبر؛ على سبيل المثال، قد تكون أعدادًا صحيحة ، أو أعدادًا عشرية ، أو أي نوع آخر من الكائنات ذات مفتاح رقمي. مع ذلك، لا يُفترض أنها مُرتبة مسبقًا. غالبًا ما تقتصر خوارزميات الاختيار على نموذج حسابي قائم على المقارنة ، كما هو الحال في خوارزميات فرز المقارنة ، حيث تمتلك الخوارزمية عملية مقارنة تُحدد الترتيب النسبي لأي قيمتين، ولكن لا يُمكنها إجراء أي عمليات حسابية أخرى على هذه القيم. [ 1 ]
لتبسيط المسألة، تفترض بعض الدراسات أن القيم جميعها متميزة عن بعضها البعض، [ 2 ] أو أنه تم استخدام طريقة متسقة لكسر التعادل لترتيب أزواج العناصر المتساوية في القيمة. ويتعلق اختلاف آخر في تعريف المسألة بترقيم القيم المرتبة: حيث تمثل أصغر قيمة يتم الحصول عليها بوضعكما هو الحال في ترقيم المصفوفات بدءًا من الصفر ، أم يتم الحصول عليه عن طريق تحديدهل يتم استخدام المصطلحات الإنجليزية المعتادة للدلالة على أصغر قيمة، وثاني أصغر قيمة، وما إلى ذلك؟ تتبع هذه المقالة المصطلحات التي استخدمها كورمن وآخرون، والتي بموجبها تكون جميع القيم متميزة ويتم الحصول على القيمة الدنيا من[ 2 ]
وفقًا لهذه الاتفاقيات، فإن القيمة القصوى، ضمن مجموعة منيتم الحصول على القيم عن طريق تحديد. متىإذا كان عددًا فرديًا ، يتم الحصول على الوسيط للمجموعة عن طريق وضع. متىإذا كان العدد زوجيًا، فهناك خياران للوسيط، يتم الحصول عليهما بتقريب هذا الخيار منلأسفل أو لأعلى، على التوالي: الوسيط الأدنى معوالمتوسط الأعلى مع[ 2 ]
الخوارزميات
الفرز والاختيار من بين المجموعات
كخوارزمية أساسية، يتم اختياريمكن إيجاد أصغر قيمة في مجموعة من القيم من خلال الخطوتين التاليتين:
- فرز المجموعة
- إذا كانت مخرجات خوارزمية الفرز عبارة عن مصفوفة ، فاسترجعهاالعنصر رقم 1 ؛ وإلا، فابحث في التسلسل المصنف للعثور على العنصر رقم 1.العنصر رقم 1 .
تستغرق هذه الطريقة وقتاً طويلاً، ويعتمد ذلك بشكل أساسي على خطوة الفرز، والتي تتطلبالوقت باستخدام فرز المقارنة . [ 2 ] [ 3 ] حتى عند استخدام خوارزميات فرز الأعداد الصحيحة ، فإنها عادةً ما تكون أبطأ من الوقت الخطي الذي يمكن تحقيقه باستخدام خوارزميات اختيار متخصصة. ومع ذلك، فإن بساطة هذا النهج تجعله جذابًا، خاصةً عند توفير روتين فرز عالي الكفاءة كجزء من مكتبة وقت التشغيل، ولكن لا تتوفر خوارزمية اختيار. بالنسبة للمدخلات ذات الحجم المتوسط، يمكن أن يكون الفرز أسرع من خوارزميات الاختيار غير العشوائية، نظرًا لصغر العوامل الثابتة في وقت تشغيله. [ 4 ] تُنتج هذه الطريقة أيضًا نسخة مُرتبة من المجموعة، والتي قد تكون مفيدة لحسابات لاحقة أخرى، وخاصةً للاختيار مع خيارات أخرى .[ 3 ]
بالنسبة لخوارزمية الفرز التي تُنشئ عنصرًا واحدًا في كل مرة، مثل فرز التحديد ، يمكن إجراء المسح بالتزامن مع الفرز، ويمكن إنهاء الفرز بمجرد الانتهاء منتم العثور على العنصر رقم 1. يمكن اعتبار أحد التصاميم الممكنة لجدول مباريات الترضية في بطولة خروج المغلوب ، حيث تلعب الفرق التي خسرت أمام الفائز النهائي بطولة مصغرة أخرى لتحديد المركز الثاني، مثالاً على هذه الطريقة. [ 5 ] يؤدي تطبيق هذا التحسين على فرز الكومة إلى إنتاج خوارزمية اختيار الكومة، والتي يمكنها اختيارأصغر قيمة في الزمن[ 6 ] هذا سريع عندماصغير نسبياً إلىلكنها تتدهور إلىبالنسبة للقيم الأكبر منمثل الاختيارتُستخدم لإيجاد الوسيط.
التحول
تعتمد العديد من طرق الاختيار على اختيار عنصر "محوري" خاص من المدخلات، واستخدام المقارنات مع هذا العنصر لتقسيم المتبقيقيم الإدخال إلى مجموعتين فرعيتين: المجموعةمن العناصر الأقل من العنصر المحوري، والمجموعةللعناصر الأكبر من العنصر المحوري. يمكن للخوارزمية بعد ذلك تحديد مكانيتم إيجاد أصغر قيمة بناءً على مقارنةمع أحجام هذه المجموعات. على وجه الخصوص، إذا، الأصغر قيمة موجودة فيويمكن إيجادها بشكل متكرر من خلال تطبيق خوارزمية الاختيار نفسها على. لوثم الـأصغر قيمة هي القيمة المحورية، ويمكن إرجاعها فورًا. في الحالة المتبقية،أصغر قيمة موجودة فيوبشكل أكثر تحديدًا ، هو العنصر الموجود في الموضعليمكن إيجادها بتطبيق خوارزمية اختيار بشكل متكرر، والبحث عن القيمة في هذا الموضع في[ 7 ]
كما هو الحال مع خوارزمية الفرز السريع القائمة على التمحور ، فإن تقسيم المدخلات إلىويمكن القيام بذلك عن طريق إنشاء مجموعات جديدة لهذه المجموعات، أو باستخدام طريقة تقسم قائمة أو مصفوفة بيانات معينة في مكانها. تختلف التفاصيل حسب كيفية تمثيل مجموعة الإدخال. [ 8 ] الوقت اللازم لمقارنة العنصر المحوري بجميع القيم الأخرى هو[ 7 ] مع ذلك ، تختلف طرق التمحور في كيفية اختيارها للمحور، مما يؤثر على حجم المشكلات الفرعية في كل استدعاء تكراري. وتعتمد كفاءة هذه الطرق بشكل كبير على اختيار المحور. فإذا تم اختيار المحور بشكل سيئ، فقد يكون وقت تشغيل هذه الطريقة بطيئًا للغاية .[ 4 ]
- إذا كانت نقطة الارتكاز عند الوسيط تمامًا للمدخلات، فإن كل استدعاء تكراري سيحتوي على نصف عدد القيم على الأكثر من الاستدعاء السابق، وستتجمع الأزمنة الإجمالية في متسلسلة هندسية إلىومع ذلك ، فإن إيجاد الوسيط بحد ذاته يمثل مشكلة اختيار، وذلك على كامل المدخلات الأصلية. ومحاولة إيجاده من خلال استدعاء متكرر لخوارزمية اختيار ستؤدي إلى تكرار لا نهائي، لأن حجم المشكلة لن يتناقص في كل استدعاء. [ 7 ]
- تختار خوارزمية Quickselect العنصر المحوري عشوائيًا وبشكل متساوٍ من بين القيم المدخلة. ويمكن وصفها بأنها خوارزمية تقليم وبحث ، [ 9 ] وهي نوع من خوارزمية Quicksort ، مع نفس استراتيجية التمحور، ولكن في حين أن Quicksort تُجري استدعاءين متكررين لفرز المجموعتين الفرعيتين.ولا يقوم خيار التحديد السريع إلا بإجراء أحد هذين الاستدعاءين. والوقت المتوقع لذلك هو[ 2 ] [ 7 ] [ 9 ] لأي ثابت، احتمال أن يتجاوز عدد مقارناتهاصغير بشكل فائق الأسي في[ 10 ]
- تختار خوارزمية فلويد-ريفست ، وهي شكل من أشكال الاختيار السريع، نقطة ارتكاز عن طريق أخذ عينة عشوائية من مجموعة فرعية منقيم البيانات، لحجم عينة معينثم يتم تحديد عنصرين بشكل متكرر أعلى وأسفل الموضع قليلاًمن العينة التي سيتم استخدامها كمحاور. مع هذا الاختيار، من المرجح أنيتم وضع البيانات بين محوري الربط، بحيث لا يتبقى بعد عملية الربط سوى عدد قليل من قيم البيانات بين المحورين لإجراء استدعاء متكرر. يمكن لهذه الطريقة تحقيق عدد متوقع من المقارنات وهو[ 11 ] في عملهما الأصلي ، ادعى فلويد وريفست أنيمكن تقليص المدة إلى أدنى حد ممكنباستخدام مخطط أخذ عينات متكرر، ولكن تم التشكيك في صحة تحليلهم . [ 12 ] [ 13 ] في المقابل، أظهر تحليل أكثر دقة أن نسخة من خوارزميتهم تحققلهذا المصطلح. [ 14 ] على الرغم من أن التحليل المعتاد لكل من خوارزمية الاختيار السريع وخوارزمية فلويد-ريفست يفترض استخدام مولد أرقام عشوائية حقيقي ، فقد ثبت أن نسخة من خوارزمية فلويد-ريفست تستخدم مولد أرقام شبه عشوائية مُهيأ بعدد لوغاريتمي فقط من البتات العشوائية الحقيقية تعمل في وقت خطي باحتمالية عالية. [ 15 ]

- تقوم طريقة الوسيط للوسائط بتقسيم المدخلات إلى مجموعات من خمسة عناصر، وتستخدم طريقة أخرى غير تكرارية لإيجاد الوسيط لكل مجموعة من هذه المجموعات في وقت ثابت لكل مجموعة. ثم تستدعي نفسها بشكل تكراري لإيجاد الوسيط لهذه المجموعات.الوسائط. استخدام الوسيط الناتج للوسائط كمحور ينتج عنه تقسيم معوبالتالي ، فإن المشكلة تكمن فييتم اختزال العناصر إلى مسألتين متكررتين علىالعناصر (لإيجاد المحور) وعلى الأكثرالعناصر (بعد استخدام العنصر المحوري). الحجم الإجمالي لهاتين المسألتين الفرعيتين المتكررتين هو على الأكثرمما يسمح بتحليل إجمالي الوقت كمتسلسلة هندسية تُضاف إلىعلى عكس خوارزمية الاختيار السريع ، فإن هذه الخوارزمية حتمية وليست عشوائية. [ 2 ] [ 4 ] [ 5 ] كانت أول خوارزمية اختيار حتمية ذات زمن خطي معروفة، [ 5 ] ويتم تدريسها عادةً في مقررات الخوارزميات الجامعية كمثال على أسلوب فرق تسد الذي لا ينقسم إلى مسألتين فرعيتين متساويتين. [ 2 ] [ 4 ] [ 9 ] [ 16 ] ومع ذلك، فإن العوامل الثابتة العالية تؤثر على أدائها.يؤدي القيد الزمني إلى جعله أبطأ من التحديد السريع عمليًا، [ 3 ] [ 9 ] وأبطأ حتى من الفرز بالنسبة للمدخلات ذات الحجم المتوسط. [ 4 ]
- يمكن استخدام الخوارزميات الهجينة مثل introselect لتحقيق الأداء العملي لخوارزمية quickselect مع اللجوء إلى متوسطات المتوسطات لضمان أسوأ الحالاتالوقت. [ 17 ]
المصانع
خوارزميات الاختيار الحتمية ذات أقل عدد معروف من المقارنات، لقيمالتي تبعد مسافة طويلة عنأوتعتمد هذه الأساليب على مفهوم المصانع ، الذي قدمه أرنولد شونهاج ومايك باترسون ونيك بيبنجر عام 1976. [ 18 ] وهي طرق تُنشئ ترتيبات جزئية لأنواع محددة، على مجموعات فرعية صغيرة من قيم الإدخال، باستخدام المقارنات لدمج ترتيبات جزئية أصغر . كمثال بسيط، يمكن لأحد أنواع المصانع أن يأخذ كمدخل سلسلة من الترتيبات الجزئية أحادية العنصر، ويقارن أزواجًا من العناصر من هذه الترتيبات، وينتج كمخرج سلسلة من المجموعات المرتبة كليًا ثنائية العناصر. يمكن أن تكون العناصر المستخدمة كمدخلات لهذا المصنع إما قيم إدخال لم تتم مقارنتها بأي شيء بعد، أو قيم "مهدرة" ناتجة عن مصانع أخرى. يهدف الخوارزمية القائمة على المصانع إلى دمج مصانع مختلفة، حيث تذهب مخرجات بعض المصانع إلى مدخلات مصانع أخرى، من أجل الحصول في النهاية على ترتيب جزئي يكون فيه أحد العناصر (الـ( الأصغر) أكبر من بعضعناصر أخرى وأصغر من عنصر آخرآخرون. يؤدي التصميم الدقيق لهذه المصانع إلى خوارزمية، عند تطبيقها على إيجاد الوسيط، تستخدم على الأكثرالمقارنات. بالنسبة للقيم الأخرى لـ[ 19 ]
الخوارزميات المتوازية
تمت دراسة الخوارزميات المتوازية للاختيار منذ عام 1975، عندما قدم ليزلي فاليانت نموذج شجرة المقارنة المتوازية لتحليل هذه الخوارزميات، وأثبت أن الاختيار في هذا النموذج باستخدام عدد خطي من المقارنات يتطلبخطوات متوازية، حتى لاختيار الحد الأدنى أو الحد الأقصى. [ 20 ] اكتشف الباحثون لاحقًا خوارزميات متوازية للاختيار في[ 21 ] [ 22 ] في نموذج شجرة المقارنة المتوازية العشوائية ، من الممكن إجراء الاختيار في عدد محدود من الخطوات وعدد خطي من المقارنات. [ 23 ] في نموذج ذاكرة الوصول العشوائي المتوازية الأكثر واقعية للحوسبة ، مع الوصول الحصري للقراءة والكتابة إلى الذاكرة، يمكن إجراء الاختيار في وقتمعالمعالجات، وهو الأمثل من حيث الوقت وعدد المعالجات. [ 24 ] مع الوصول المتزامن للذاكرة، يصبح وقت المعالجة المتوازية أسرع قليلاً بشكل عام، [ 25 ] ويمكن استبدال المصطلح في الإطار الزمني بـ[ 26 ]
هياكل البيانات شبه الخطية
عندما تكون البيانات مُنظمة مسبقًا في بنية بيانات ، قد يكون من الممكن إجراء عملية الاختيار في وقت أقل من خطي بالنسبة لعدد القيم. كمثال بسيط على ذلك، بالنسبة للبيانات المُصنفة مسبقًا في مصفوفة، فإن اختياريمكن الوصول إلى العنصر رقم n من خلال عملية بحث واحدة في المصفوفة، في وقت ثابت. [ 27 ] بالنسبة للقيم المنظمة في مصفوفة ثنائية الأبعاد بحجممع وجود صفوف وأعمدة مرتبة، يمكن إجراء التحديد في الوقت المناسبأو أسرع عندماصغير نسبيًا مقارنةً بأبعاد المصفوفة. [ 27 ] [ 28 ] بالنسبة لمجموعة منالمصفوفات المرتبة أحادية البعد، مععدد العناصر الأقل من العنصر المحدد فيالمصفوفة رقم 1 ، الوقت هو[ 28 ]
يستغرق اختيار البيانات من كومة ثنائية وقتًاوهذا مستقل عن الحجممن الكومة، وأسرع منالحد الزمني الذي يمكن الحصول عليه من بحث الأفضل أولاً . [ 28 ] [ 29 ] يمكن تطبيق هذه الطريقة نفسها بشكل أعم على البيانات المنظمة على شكل أي نوع من الأشجار المرتبة ترتيبًا هرميًا (شجرة تخزن فيها كل عقدة قيمة واحدة، حيث تكون قيمة العقدة الأب لكل عقدة غير جذرية أصغر من قيمة عقدتها الابنة). طُبقت هذه الطريقة لإجراء الاختيار في كومة على مشاكل سرد حلول متعددة لمسائل التحسين التوافقي ، مثل إيجاد أقصر k مسار في رسم بياني مُثقَّل، وذلك بتعريف فضاء حالة للحلول على شكل شجرة مرتبة ترتيبًا هرميًا مُعرَّفة ضمنيًا ، ثم تطبيق خوارزمية الاختيار هذه على هذه الشجرة. [ 30 ] في الاتجاه الآخر، استُخدمت خوارزميات الاختيار ذات الوقت الخطي كإجراء فرعي في بنية بيانات قائمة الانتظار ذات الأولوية المرتبطة بالكومة، مما حسَّن وقت استخراجها.العنصر رقم 1 منل؛ هناهو اللوغاريتم المتكرر . [ 31 ]
بالنسبة لمجموعة من قيم البيانات التي تخضع لعمليات إدخال وحذف ديناميكية، تعمل شجرة الإحصاء الترتيبي على تعزيز بنية شجرة البحث الثنائية ذاتية التوازن بكمية ثابتة من المعلومات الإضافية لكل عقدة في الشجرة، مما يسمح بعمليات الإدخال والحذف والاستعلامات التي تطلبالعنصر رقم في المجموعة الحالية سيتم تنفيذه بالكامل في[ 2 ] يتجاوز نموذج المقارنة الحسابي، إذ يُمكن تحقيق أوقات أسرع لكل عملية للقيم التي تُمثل أعدادًا صحيحة صغيرة، والتي يُسمح بإجراء العمليات الحسابية الثنائية عليها . [ 32 ] لا يُمكن لخوارزمية التدفق أن تُحقق أوقاتًا أسرع لكل عملية مع ذاكرة ذات زمن أقل من خطي في كليهما.ولحل استعلامات الاختيار بدقة للبيانات الديناميكية، يمكن استخدام رسم العد الأدنى لحل استعلامات الاختيار تقريبًا، وذلك بإيجاد قيمة يكون موضعها في ترتيب العناصر (إذا تمت إضافتها إليها) ضمنخطوات، بالنسبة لرسم تخطيطي يقع حجمه ضمن عوامل لوغاريتمية من[ 33 ]
الحدود الدنيا
اليُعدّ وقت تشغيل خوارزميات الاختيار المذكورة أعلاه ضروريًا، لأنّ خوارزمية الاختيار التي يمكنها معالجة المدخلات بترتيب عشوائي يجب أن تستغرق هذا الوقت لفحص جميع مدخلاتها. إذا لم تتم مقارنة أيٍّ من قيم المدخلات، فقد تكون تلك القيمة هي القيمة التي كان ينبغي اختيارها، وبالتالي قد تُنتج الخوارزمية إجابة خاطئة. [ 28 ] إضافةً إلى هذه الحجة البسيطة، أُجريت أبحاثٌ كثيرة حول العدد الدقيق للمقارنات اللازمة للاختيار، سواءً في الحالات العشوائية أو الحتمية.
اختيار الحد الأدنى منالقيم تتطلبالمقارنات، لأنيجب أن تكون القيم التي لم يتم اختيارها قد حُددت جميعها على أنها غير دنيا، وذلك لكونها الأكبر في مقارنة ما، ولا يمكن أن تكون قيمتان منها الأكبر في المقارنة نفسها. وينطبق المنطق نفسه على اختيار القيمة القصوى. [ 14 ]
الحالة الأبسط التالية هي اختيار ثاني أصغر قيمة. بعد عدة محاولات غير صحيحة، نُشر أول حد أدنى دقيق لهذه الحالة عام 1964 على يد عالم الرياضيات السوفيتي سيرجي كيسليتسين . ويمكن إثبات ذلك من خلال ملاحظة أن اختيار ثاني أصغر قيمة يتطلب أيضًا تمييز أصغر قيمة عن باقي القيم، ومن خلال النظر في العددمن المقارنات التي تتضمن أصغر قيمة يمكن أن تُجريها خوارزمية لحل هذه المشكلة. كل منهاالعناصر التي تمت مقارنتها بأصغر قيمة هي مرشحة لتكون ثاني أصغر قيمة، ويجب إيجاد قيمة من هذه القيم أكبر من قيمة أخرى في مقارنة ثانية لاستبعادها باعتبارها ثاني أصغر قيمة.أن تكون القيم أكبر في مقارنة واحدة على الأقل، وإذا كانت القيم أكبر في مقارنتين على الأقل، فإن إجمالي عدد القيم سيكون على الأقلالمقارنات. حجة خصومة ، حيث يتم اختيار نتيجة كل مقارنة من أجل تحقيق أقصى قدر من الفائدة.(رهناً بالتوافق مع ترتيب واحد ممكن على الأقل) بدلاً من القيم العددية للعناصر المعطاة، يُظهر أنه من الممكن فرضأن يكون على الأقلوبالتالي ، فإن أسوأ عدد للمقارنات اللازمة لاختيار ثاني أصغر قيمة هووهو نفس العدد الذي يمكن الحصول عليه من خلال تنظيم بطولة إقصائية فردية مع جولة فاصلة بين القيم التي خسرت أمام أصغر قيمة. ومع ذلك، يمكن أن يكون العدد المتوقع للمقارنات في خوارزمية اختيار عشوائية أفضل من هذا الحد؛ على سبيل المثال، يتطلب اختيار ثاني أصغر عنصر من بين ستة عناصر سبع مقارنات في أسوأ الحالات، ولكن يمكن القيام بذلك بواسطة خوارزمية عشوائية بعدد متوقع يبلغ 6.5 مقارنات. [ 14 ]
وبشكل أعم، اختيارالعنصر رقم 1 من بينيتطلب على الأقلفي المتوسط، تتطابق المقارنات مع عدد مقارنات خوارزمية فلويد-ريفست حتىيُستخدم هذا المصطلح مباشرةً في سياق الخوارزميات الحتمية، حيث يُحسب عدد المقارنات كمتوسط لجميع التباديل الممكنة لقيم المدخلات . [ 1 ] وبحسب مبدأ ياو ، ينطبق هذا أيضًا على العدد المتوقع للمقارنات لخوارزمية عشوائية على أسوأ حالة مدخلات لها. [ 34 ]
بالنسبة للخوارزميات الحتمية، فقد ثبت أن اختياريتطلب العنصر thالمقارنات، حيثهي دالة الإنتروبيا الثنائية . [ 35 ] الحالة الخاصة لإيجاد الوسيط لها حد أدنى أكبر قليلاً لعدد المقارنات، على الأقل، ل[ 36 ]
الأعداد الدقيقة للمقارنات

يقدم كنوت المثلث التالي من الأرقام الذي يلخص أزواجًا منووالتي يكون فيها العدد الدقيق للمقارنات اللازمة لخوارزمية الاختيار الأمثل معروفاً.الصف رقم 1 من المثلث (بدءًا من(في الصف العلوي) يوضح عدد المقارنات لمدخلات منالقيم، ويشير الرقم الموجود في كل صف إلى عدد المقارنات اللازمة لاختيارأصغر قيمة من مدخلات بهذا الحجم. الصفوف متناظرة لأن اختياريتطلب اختيار أصغر قيمة نفس عدد المقارنات تمامًا، في أسوأ الحالات، مثل اختيار القيمة الأصغر.الأكبر . [ 14 ]
يمكن إيجاد معظم، وليس كل، المدخلات الموجودة في النصف الأيسر من كل صف باستخدام الصيغةيصف هذا عدد المقارنات التي تجريها طريقة عبد الله هاديان وميلتون سوبل ، المرتبطة باختيار الكومة، والتي تجد أصغر قيمة باستخدام بطولة إقصاء فردي، ثم تستخدم بشكل متكرر بطولة أصغر بين القيم التي تم استبعادها بواسطة الفائزين النهائيين في البطولة للعثور على القيم المتتالية التالية حتى الوصول إلىأصغرها . [ 14 ] [ 37 ] وقد ثبت أن بعض المدخلات الأكبر حجمًا هي الأمثل باستخدام البحث الحاسوبي. [ 14 ] [ 38 ]
الدعم اللغوي
قلة قليلة من لغات البرمجة تدعم بشكل مدمج عملية الاختيار العام، مع أن العديد منها يوفر أدوات لإيجاد أصغر أو أكبر عنصر في قائمة. ومن الاستثناءات البارزة المكتبات القياسية للغتي C++ و Rust . توفر مكتبة القوالب القياسية للغة C++ nth_elementدالة مُنمذجة مع ضمان وقت تنفيذ خطي متوقع. [ 3 ] أما مكتبة Rust القياسية، فتُوفر عدة صيغ للدالة select_nth_unstableالعضوية لنوع sliceالبيانات. وتضمن هذه الصيغ جميعها وقت تنفيذ خطي لجميع المدخلات. [ 39 ]
تتضمن مكتبة بايثون القياسية heapq.nsmallestدوالًا heapq.nlargestلإرجاع أصغر أو أكبر العناصر من مجموعة، بترتيب مُرتب. ويحتفظ التنفيذ بكومة ثنائية ، تقتصر على استيعابالعناصر، وتمت تهيئتها إلى الأولعناصر المجموعة. بعد ذلك، يمكن لكل عنصر لاحق في المجموعة أن يحل محل أكبر أو أصغر عنصر في الكومة إذا كان أصغر أو أكبر من هذا العنصر. استخدام الذاكرة في هذه الخوارزمية أفضل من خوارزمية اختيار الكومة (الأولى تحتفظ فقط بـيتم تخزين العناصر في الذاكرة في وقت واحد، بينما يتطلب الأخير معالجة مجموعة البيانات بأكملها في الذاكرة. يعتمد وقت التشغيل على ترتيب البيانات. أفضل حالة هيبالنسبة للبيانات المصنفة مسبقًا. أسوأ الحالات هيبالنسبة للبيانات المرتبة عكسيًا. في المتوسط، من المرجح أن يكون هناك عدد قليل من تحديثات الذاكرة، وتُعالج معظم عناصر الإدخال بمقارنة واحدة فقط. على سبيل المثال، يتطلب استخراج أكبر أو أصغر 100 قيمة من بين 10,000,000 مدخل عشوائي 10,009,401 مقارنة في المتوسط. [ 40 ]
منذ عام 2017، أضافت Matlabmaxk() وظائف mink()تُرجع القيمة القصوى (الدنيا).القيم في المتجه بالإضافة إلى مؤشراتها. لا تحدد وثائق Matlab الخوارزمية التي تستخدمها هذه الدوال أو وقت تشغيلها. [ 41 ]
تاريخ
عُرضت خوارزمية الاختيار السريع (Quickselect) دون تحليل من قِبل توني هوار عام 1965، [ 42 ] وخضعت لأول تحليل في تقرير فني عام 1971 من قِبل دونالد كنوث . [ 11 ] أما أول خوارزمية اختيار حتمية خطية معروفة فهي طريقة وسيط الوسائط ، التي نُشرت عام 1973 من قِبل مانويل بلوم ، وروبرت دبليو فلويد ، وفون برات ، ورون ريفست ، وروبرت تارجان . [ 5 ] ويعزو هؤلاء الباحثون صياغة مشكلة الاختيار إلى أعمال تشارلز إل دودجسون (المعروف باسم لويس كارول ) الذي أشار عام 1883 إلى أن التصميم المعتاد لبطولات الإقصاء الفردي في الرياضات لا يضمن فوز اللاعب صاحب المركز الثاني، [ 5 ] [ 43 ] وإلى أعمال هوغو شتاينهاوس حوالي عام 1930، الذي تابع هذا النهج الفكري نفسه، مطالبًا بتصميم بطولة يضمن ذلك، مع الحد الأدنى من المباريات (أي المقارنات). [ 5 ]
انظر أيضاً
- الوسيط الهندسي § الحساب ، خوارزميات لتعميمات الوسائط ذات الأبعاد الأعلى
- مرشح الوسيط ، تطبيق خوارزميات إيجاد الوسيط في معالجة الصور
مراجع
- 1 2 كونتو، والتر؛ مونرو، ج. إيان (1989). "اختيار الحالة المتوسطة" . مجلة ACM . 36 (2): 270-279 . doi : 10.1145 / 62044.62047 . MR 1072421. S2CID 10947879 .
- 1 2 3 4 5 6 7 8 كورمن، توماس هـ .؛ ليسرسون، تشارلز إي .؛ ريفست، رونالد ل .؛ شتاين، كليفورد (2009) [1990]. "الفصل 9: الوسائط والإحصاءات الترتيبية". مقدمة في الخوارزميات ( الطبعة الثالثة). مطبعة معهد ماساتشوستس للتكنولوجيا وماكجرو هيل. الصفحات 213-227 . ISBN 0-262-03384-4.؛ "القسم 14.1: إحصاءات الترتيب الديناميكية"، الصفحات 339-345
- 1 2 3 4 سكينا، ستيفن س. (2020). "17.3: الوسيط والاختيار". دليل تصميم الخوارزميات . نصوص في علوم الحاسوب ( الطبعة الثالثة). سبرينغر. ص 514-516 . doi : 10.1007/978-3-030-54256-6 . ISBN 978-3-030-54255-9. MR 4241430 . S2CID 22382667 .
- 1 2 3 4 5 إريكسون، جيف (يونيو 2019). "1.8: الاختيار الخطي". الخوارزميات . ص 35-39 .
- 1 2 3 4 5 6 بلوم، مانويل ؛ فلويد، روبرت و.؛ برات ، فوغان ؛ ريفست، رونالد ل.؛ تارجان ، روبرت إي. (1973). "الحدود الزمنية للاختيار" (ملف PDF) . مجلة علوم الحاسوب والنظم . 7 (4): 448-461 . doi : 10.1016/S0022-0000(73)80033-9 . MR 0329916 .
- ↑ برودال، جيرث ستولتينغ (2013). "دراسة استقصائية حول قوائم الانتظار ذات الأولوية". في: برودنيك، أندريه؛ لوبيز-أورتيز، أليخاندرو؛ رامان، فينكاتيش؛ فيولا، ألفريدو (محررون). هياكل البيانات، والتدفقات، والخوارزميات ذات الكفاءة المكانية - أوراق بحثية تكريمًا لجيه. إيان مونرو بمناسبة عيد ميلاده السادس والستين . سلسلة محاضرات في علوم الحاسوب. المجلد 8066. سبرينغر. الصفحات 150-163 . doi : 10.1007/978-3-642-40273-9_11 . ISBN 978-3-642-40272-2.
- 1 2 3 4 كلاينبرغ، جون ؛ تاردوس، إيفا (2006). "13.5 فرق تسد العشوائي: إيجاد الوسيط والفرز السريع". تصميم الخوارزميات . أديسون-ويسلي. ص 727-734 . ISBN 9780321295354.
- ↑ على سبيل المثال، يستخدم كورمن وآخرون تقسيم المصفوفة في مكانها، بينما يصف كلاينبيرج وتاردوس المدخلات على أنها مجموعة ويستخدمون طريقة تقسمها إلى مجموعتين جديدتين.
- 1 2 3 4 غودريتش، مايكل ت .؛ تاماسيا، روبرتو (2015). "9.2: الاختيار". تصميم الخوارزميات وتطبيقاتها . وايلي. ص 270-275 . ISBN 978-1-118-33591-8.
- ↑ ديفروي، لوك (1984). "الحدود الأسية لوقت تشغيل خوارزمية الاختيار" (ملف PDF) . مجلة علوم الحاسوب والنظم . 29 (1): 1-7 . doi : 10.1016/0022-0000(84)90009-6 . MR 0761047 . ديفروي، لوك (2001). "حول أسوأ وقت احتمالي لـ 'العثور'"( PDF) . Algorithmica . 31 (3): 291–303 . doi : 10.1007/ s00453-001-0046-2 . MR 1855252. S2CID 674040 .
- 1 2 فلويد، روبرت و .؛ ريفست، رونالد ل. (مارس 1975). "الحدود الزمنية المتوقعة للاختيار" . اتصالات رابطة آلات الحوسبة . 18 (3): 165-172 . doi : 10.1145/360680.360691 . S2CID 3064709 . انظر أيضًا "الخوارزمية 489: خوارزمية SELECT - لإيجادأصغرالعناصر"، ص 173، doi : 10.1145/360680.360694 .
- ↑ براون، ثيودور (سبتمبر 1976). "ملاحظة على الخوارزمية 489". معاملات ACM في البرمجيات الرياضية . 2 (3): 301-304 . doi : 10.1145/355694.355704 . S2CID 13985011 .
- ↑ بوستمس، جيه تي؛ رينوي كان، إيه إتش جي ؛ تيمر، جي تي (1983). "طريقة اختيار ديناميكية فعالة" . اتصالات رابطة مكائن الحوسبة . 26 (11): 878-881 . doi : 10.1145/182.358440 . MR 0784120. S2CID 3211474 .
- 1 2 3 4 5 6 كنوت، دونالد إي. (1998). "القسم 5.3.3: اختيار المقارنة الدنيا". فن برمجة الحاسوب، المجلد 3: الفرز والبحث ( الطبعة الثانية). أديسون-ويسلي. الصفحات 207-219 . ISBN 0-201-89685-0.
- ↑ كارلوف، هوارد جيه؛ راغافان، برابهاكار (1993). " الخوارزميات العشوائية والأرقام شبه العشوائية" . مجلة ACM . 40 (3): 454-476 . doi : 10.1145/174130.174132 . MR 1370358. S2CID 17956460 .
- ↑ غورويتز، تشايا (1992). "حول تدريس خوارزميات إيجاد الوسيط". معاملات IEEE في التعليم . 35 (3): 230-232 . Bibcode : 1992ITEdu..35..230G . doi : 10.1109/13.144650 .
- ↑ موسر، ديفيد ر. (أغسطس 1997). "خوارزميات الفرز والاختيار الاستبطانية". البرمجيات: الممارسة والخبرة . 27 (8). وايلي: 983-993 . doi : 10.1002/(sici)1097-024x(199708)27:8 < 983::aid-spe117 > 3.0.co ; 2-# .
- ↑ شونهاج، أ .؛ باترسون، م .؛ بيبنجر، ن. (1976). "إيجاد الوسيط". مجلة علوم الحاسوب والنظم . 13 (2): 184-199 . doi : 10.1016 / S0022-0000(76)80029-3 . MR 0428794. S2CID 29867292 .
- ↑ دور، دوريت ؛ زويك ، أوري (1999). "اختيار الوسيط". مجلة SIAM للحوسبة . 28 (5): 1722-1758 . doi : 10.1137/S0097539795288611 . MR 1694164. S2CID 2633282 .
- ↑ فاليانت، ليزلي ج. (1975). "التوازي في مسائل المقارنة". مجلة SIAM للحوسبة . 4 (3): 348-355 . doi : 10.1137/0204030 . MR 0378467 .
- ^ أجتاي، ميكلوس ؛ كوملوس, يانوس ; ستيجر، WL. سيميريدي، إندري (1989). "الاختيار الموازي الأمثل له تعقيد". مجلة علوم الحاسوب والأنظمة . 38 (1): 125– 133. doi : 10.1016/0022-0000(89)90035-4 . MR 0990052 .
- ↑ آزار، يوسي؛ بيبنجر، نيكولاس (1990). "الاختيار المتوازي". الرياضيات التطبيقية المنفصلة . 27 ( 1-2 ): 49-58 . doi : 10.1016/0166-218X(90)90128-Y . MR 1055590 .
- ↑ رايشوك، روديجر (1985). "خوارزميات متوازية احتمالية للفرز والاختيار". مجلة SIAM للحوسبة . 14 (2): 396-409 . doi : 10.1137/0214030 . MR 0784745 .
- ↑ هان، ييجي (2007). "الاختيار الأمثل المتوازي". معاملات ACM في الخوارزميات . 3 (4): A38:1–A38:11. doi : 10.1145 /1290672.1290675 . MR 2364962. S2CID 9645870 .
- ↑ تشودري، شيفا؛ هاجيروب، توربن؛ رامان، راجيف (1993). "الاختيار المتوازي الحتمي التقريبي والدقيق". في: بورزيسكوفسكي، أندريه م.؛ سوكولوفسكي، ستيفان (محرران). الأسس الرياضية لعلوم الحاسوب 1993، الندوة الدولية الثامنة عشرة، MFCS'93، غدانسك، بولندا، 30 أغسطس - 3 سبتمبر 1993، وقائع المؤتمر . سلسلة محاضرات في علوم الحاسوب. المجلد 711. سبرينغر. الصفحات 352-361 . doi : 10.1007/3-540-57182-5_27 . hdl : 11858/00-001M-0000-0014-B748-C . ISBN 978-3-540-57182-7.
- ↑ ديتز، بول ف.؛ رامان، راجيف (1999). "اختيار الرتبة الصغيرة بالتوازي، مع تطبيقات على بناء الكومة". مجلة الخوارزميات . 30 (1): 33-51 . doi : 10.1006/jagm.1998.0971 . MR 1661179 .
- 1 2 فريدريكسون، جريج ن.؛ جونسون، دونالد ب. (1984). "الاختيار والترتيب المعمم: المصفوفات المصنفة". مجلة SIAM للحوسبة . 13 (1): 14-30 . doi : 10.1137/0213002 . MR 0731024 .
- 1 2 3 4 كابلان، حاييم؛ كوزما، لازلو؛ زامير، أور؛ زويك، أوري (2019). "الاختيار من الأكوام، والمصفوفات المرتبة صفّياً، وباستخدام أكوام ناعمة". في فاينمان، جيريمي ت.؛ ميتزنماخر، مايكل (محرران). الندوة الثانية حول البساطة في الخوارزميات، SOSA 2019، 8-9 يناير 2019، سان دييغو، كاليفورنيا، الولايات المتحدة الأمريكية . OASICs. المجلد. 69. Schloss Dagstuhl – Leibniz-Zentrum für Informatik. ص. 5 : 1–5 : 21 .
- ↑ فريدريكسون، جريج ن. (1993). "خوارزمية مثلى للاختيار في كومة دنيا" . المعلومات والحوسبة . 104 (2): 197-214 . doi : 10.1006/inco.1993.1030 . MR 1221889 .
- ↑ إبستين، ديفيد (1999). "إيجاد"أقصر المسارات". مجلة SIAM للحوسبة . 28 (2): 652-673 . doi : 10.1137/S0097539795290477 . MR 1634364 .
- ↑ بابينكو، مكسيم؛ كوليسنيتشينكو، إغنات؛ سميرنوف، إيفان (2019). "الكومة المتتالية: نحو استخلاصات مثالية زمنيًا". نظرية أنظمة الحوسبة . 63 (4): 637-646 . doi : 10.1007/s00224-018-9866-1 . MR 3942251. S2CID 253740380 .
- ↑ باتراشكو، ميهاي ؛ ثورب، ميكيل (2014). "مجموعات الأعداد الصحيحة الديناميكية مع الترتيب الأمثل، والاختيار، والبحث عن السلف". المؤتمر السنوي الخامس والخمسون لجمعية مهندسي الكهرباء والإلكترونيات حول أسس علوم الحاسوب، FOCS 2014، فيلادلفيا، بنسلفانيا، الولايات المتحدة الأمريكية، 18-21 أكتوبر 2014. جمعية مهندسي الكهرباء والإلكترونيات. الصفحات 166-175 . arXiv : 1408.3045 . doi : 10.1109/FOCS.2014.26 . ISBN 978-1-4799-6517-5.
- ↑ كورمود، غراهام؛ موثوكريشنان، س. (2005). "ملخص مُحسَّن لتدفق البيانات: رسم عد-أدنى وتطبيقاته". مجلة الخوارزميات . 55 (1): 58-75 . doi : 10.1016/j.jalgor.2003.12.001 . MR 2132028 .
- ↑ تشان، تيموثي م. (2010). "حدود دنيا للوقت والمكان للاختيار قائمة على المقارنة". معاملات ACM في الخوارزميات . 6 (2): A26:1–A26:16. doi : 10.1145 /1721837.1721842 . MR 2675693. S2CID 11742607 .
- ↑ بنت، صموئيل و.؛ جون، جون و. (1985). "يتطلب إيجاد الوسيطالمقارنات". في: سيدجويك، روبرت (محرر). وقائع الندوة السنوية السابعة عشرة لجمعية آلات الحوسبة حول نظرية الحوسبة، 6-8 مايو 1985، بروفيدنس، رود آيلاند، الولايات المتحدة الأمريكية . جمعية آلات الحوسبة. الصفحات 213-216 . doi : 10.1145/22145.22169 . ISBN 0-89791-151-2.
- ↑ دور، دوريت ؛ زويك، أوري (2001). "يتطلب اختيار الوسيط"المقارنات". مجلة SIAM للرياضيات المتقطعة . 14 (3): 312-325 . doi : 10.1137/S0895480199353895 . MR 1857348 .
- ^ هاديان، عبد الله. سوبيل ، ميلتون (مايو 1969). اختيارأكبر قيمة باستخدام المقارنات الثنائية الخالية من الأخطاء (تقرير). تقارير فنية من كلية الإحصاء. المجلد 121. جامعة مينيسوتا. hdl : 11299/199105 .
- ↑ غاسارش، ويليام ؛ كيلي، واين؛ بو، ويليام (يوليو 1996). "إيجادالأكبر منللصغار". ACM SIGACT News . 27 (2): 88–96 . doi : 10.1145/235767.235772 . S2CID 3133332 .
- ↑ "شريحة النوع البدائي" . مكتبة Rust القياسية . تم الاسترجاع في 12-10-2025 .
- ↑ "شفرة مصدر حزمة heapq" . مكتبة بايثون . تم الاطلاع عليها بتاريخ 2023-08-06 .انظر أيضًا إلى المقارنة المرتبطة لأداء الخوارزمية على بيانات أفضل الحالات .
- ↑ "mink: إيجاد أصغر k عنصر في المصفوفة" . وثائق Matlab R2023a . Mathworks . تم الاطلاع بتاريخ 30-03-2023 .
- ↑ هوار، سي إيه آر (يوليو 1961). "الخوارزمية 65: البحث". اتصالات رابطة آلات الحوسبة . 4 (7): 321-322 . doi : 10.1145/366622.366647 .
- ↑ دودجسون، تشارلز ل. (1883). بطولات التنس على العشب: الطريقة الصحيحة لتوزيع الجوائز مع إثبات خطأ الطريقة الحالية . لندن: ماكميلان وشركاه.انظر أيضًا: ويلسون، روبن ؛ ومقتفي، أميروش، محرران (2019). "بطولات التنس على العشب" . العالم الرياضي لتشارلز ل. دودجسون (لويس كارول) . مطبعة جامعة أكسفورد. ص 129. ISBN 9780192549013.
- خوارزميات الاختيار
