فرز الأعداد الصحيحة
في علوم الحاسوب ، يُعرف فرز الأعداد الصحيحة بأنه عملية فرز مجموعة من قيم البيانات باستخدام مفاتيح عددية صحيحة . غالبًا ما تُطبَّق الخوارزميات المصممة لفرز الأعداد الصحيحة على مسائل الفرز التي تكون فيها المفاتيح أعدادًا عشرية ، أو أعدادًا نسبية ، أو سلاسل نصية. [ 1 ] تُمكّن القدرة على إجراء عمليات حسابية صحيحة على المفاتيح خوارزميات فرز الأعداد الصحيحة من أن تكون أسرع من خوارزميات الفرز المقارن في كثير من الحالات، وذلك اعتمادًا على تفاصيل العمليات المسموح بها في نموذج الحوسبة وحجم الأعداد الصحيحة المراد فرزها.
تُستخدم خوارزميات فرز الأعداد الصحيحة، بما في ذلك فرز الحمام ، وفرز العد ، وفرز الجذر ، على نطاق واسع وتُعدّ عملية. أما خوارزميات فرز الأعداد الصحيحة الأخرى ذات حدود زمنية أصغر في أسوأ الحالات، فيُعتقد أنها غير عملية لبنى الحواسيب التي تحتوي على 64 بت أو أقل لكل كلمة. توجد العديد من هذه الخوارزميات المعروفة، ويعتمد أداؤها على مجموعة من العوامل، منها عدد العناصر المراد فرزها، وعدد البتات لكل مفتاح، وعدد البتات لكل كلمة في الحاسوب الذي يُنفّذ خوارزمية الفرز.
اعتبارات عامة
نماذج الحوسبة
تعتمد الحدود الزمنية لخوارزميات فرز الأعداد الصحيحة عادةً على ثلاثة معايير: عدد قيم البيانات (n) المراد فرزها، وقيمة أكبر مفتاح ممكن (K) المراد فرزه، وعدد البتات (w) التي يمكن تمثيلها في كلمة واحدة من كلمات الآلة في الحاسوب الذي تُنفَّذ عليه الخوارزمية. ويُفترض عادةً أن w ≥ log₂ ( max( n , K )) ؛ أي أن كلمات الآلة كبيرة بما يكفي لتمثيل فهرس في تسلسل بيانات الإدخال، وكبيرة بما يكفي لتمثيل مفتاح واحد. [ 2 ]
تُصمَّم خوارزميات فرز الأعداد الصحيحة عادةً للعمل في نموذجي الحوسبة: آلة المؤشر وآلة الوصول العشوائي . ويكمن الاختلاف الرئيسي بين هذين النموذجين في كيفية عنونة الذاكرة. تسمح آلة الوصول العشوائي باستخدام أي قيمة مُخزَّنة في سجل كعنوان لعمليات قراءة وكتابة الذاكرة، بتكلفة وحدة واحدة لكل عملية. تُمكِّن هذه الخاصية من تنفيذ بعض العمليات المعقدة على البيانات بسرعة باستخدام البحث في الجداول. في المقابل، في نموذج آلة المؤشر، تستخدم عمليات القراءة والكتابة عناوين مُخزَّنة في مؤشرات، ولا يُسمح بإجراء عمليات حسابية على هذه المؤشرات. في كلا النموذجين، يُمكن جمع قيم البيانات، كما يُمكن عادةً إجراء عمليات منطقية ثنائية وعمليات إزاحة ثنائية عليها، بتكلفة وحدة واحدة لكل عملية. مع ذلك، تفترض خوارزميات فرز الأعداد الصحيحة المختلفة افتراضات متباينة حول ما إذا كان ضرب الأعداد الصحيحة مسموحًا به كعملية بوحدة زمنية. [ 3 ] كما تم النظر في نماذج حوسبة أخرى أكثر تخصصًا، مثل آلة الوصول العشوائي المتوازية . [ 4 ]
أظهر أندرسون، ميلترسن، وثورب (1999) أنه في بعض الحالات، يمكن استبدال عمليات الضرب أو البحث في الجداول التي تتطلبها بعض خوارزميات فرز الأعداد الصحيحة بعمليات مخصصة يسهل تنفيذها في الأجهزة، ولكنها غير متوفرة عادةً في الحواسيب العامة. وقد طوّر ثورب (2003) هذا الأمر من خلال توضيح كيفية استبدال هذه العمليات الخاصة بتعليمات معالجة حقول البتات المتوفرة بالفعل في معالجات بنتيوم .
في نماذج الحوسبة ذات الذاكرة الخارجية ، لا توجد خوارزمية فرز أعداد صحيحة معروفة أسرع من فرز المقارنة. وقد أظهر الباحثون أنه في هذه النماذج، لا يمكن لفئات محدودة من الخوارزميات، التي تُقيّد طريقة معالجتها للمفاتيح، أن تكون أسرع من فرز المقارنة، [ 5 ] وأن وجود خوارزمية فرز أعداد صحيحة أسرع من فرز المقارنة سيؤدي إلى دحض فرضية قياسية في ترميز الشبكات . [ 6 ]
فرز قوائم الانتظار مقابل قوائم الانتظار ذات الأولوية العددية
قائمة الانتظار ذات الأولوية هي بنية بيانات تُستخدم لإدارة مجموعة من العناصر ذات الأولويات العددية، وتتضمن عمليات لإيجاد العنصر ذي أقل قيمة أولوية وإزالته. تستغرق قوائم الانتظار ذات الأولوية القائمة على المقارنة، مثل الكومة الثنائية، وقتًا لوغاريتميًا لكل تحديث، بينما قد تكون بنى أخرى، مثل شجرة فان إمده بواس أو قائمة الانتظار ذات الدلو ، أسرع للمدخلات ذات الأولويات الصغيرة. يمكن استخدام هذه البنى في خوارزمية فرز التحديد ، التي تُرتّب مجموعة من العناصر من خلال البحث المتكرر عن أصغر عنصر في المجموعة وإزالته، ثم إعادة العناصر بالترتيب الذي وُجدت به. يمكن استخدام قائمة الانتظار ذات الأولوية لإدارة مجموعة العناصر في هذه الخوارزمية، ويمكن تحديد زمن تنفيذ هذه الخوارزمية على مجموعة من n عنصرًا بالوقت اللازم لتهيئة قائمة الانتظار ذات الأولوية، ثم إجراء n عملية بحث وإزالة. على سبيل المثال، يؤدي استخدام الكومة الثنائية كقائمة انتظار ذات أولوية في فرز التحديد إلى خوارزمية فرز الكومة ، وهي خوارزمية فرز مقارنة تستغرق وقتًا قدره O ( n log n ) . بدلاً من ذلك، فإن استخدام فرز التحديد مع قائمة انتظار دلو يعطي شكلاً من أشكال فرز الحمام ، واستخدام أشجار فان إمدي بواس أو قوائم انتظار الأولوية الصحيحة الأخرى يؤدي إلى خوارزميات فرز صحيحة سريعة أخرى. [ 7 ]
بدلاً من استخدام قائمة انتظار ذات أولوية للأعداد الصحيحة في خوارزمية الفرز، يمكن اتباع نهج معاكس، واستخدام خوارزميات فرز الأعداد الصحيحة كإجراءات فرعية ضمن بنية بيانات قائمة انتظار ذات أولوية للأعداد الصحيحة. استخدم ثورب (2007) هذه الفكرة لإثبات أنه إذا أمكن إجراء فرز الأعداد الصحيحة في زمن T ( n ) لكل مفتاح، فإن نفس الحد الزمني ينطبق على زمن كل عملية إدراج أو حذف في بنية بيانات قائمة انتظار ذات أولوية. يُعد اختزال ثورب معقدًا ويفترض توفر عمليات ضرب سريعة أو عمليات بحث في الجداول، ولكنه يقدم أيضًا قائمة انتظار ذات أولوية بديلة تستخدم عمليات الجمع والعمليات المنطقية فقط بزمن T ( n ) + T (log n ) + T (log log n ) + ... لكل عملية، مع ضرب الزمن على الأكثر في لوغاريتم متكرر . [ 7 ]
سهولة الاستخدام
تُستخدم خوارزميات فرز الأعداد الصحيحة الكلاسيكية، مثل فرز الحمام ، وفرز العد ، وفرز الجذر ، على نطاق واسع وتُعدّ عملية. [ 8 ] ركّزت معظم الأبحاث اللاحقة على خوارزميات فرز الأعداد الصحيحة بشكل أقل على الجانب العملي وأكثر على التحسينات النظرية في تحليل أسوأ الحالات ، ولا يُعتقد أن الخوارزميات الناتجة عن هذا البحث عملية بالنسبة لبنى الحواسيب الحالية ذات 64 بت ، على الرغم من أن التجارب أظهرت أن بعض هذه الطرق قد تُحسّن فرز الجذر للبيانات التي تحتوي على 128 بت أو أكثر لكل مفتاح. [ 9 ] بالإضافة إلى ذلك، بالنسبة لمجموعات البيانات الكبيرة، قد تُعيق أنماط الوصول إلى الذاكرة شبه العشوائية للعديد من خوارزميات فرز الأعداد الصحيحة أدائها مقارنةً بخوارزميات فرز المقارنة المصممة مع مراعاة التسلسل الهرمي للذاكرة . [ 10 ]
يوفر فرز الأعداد الصحيحة أحد المعايير الستة في مجموعة معايير الرياضيات المنفصلة لأنظمة الحوسبة عالية الإنتاجية التابعة لـ DARPA ، [ 11 ] وأحد المعايير الأحد عشر في مجموعة معايير NAS Parallel .
الخوارزميات العملية
يمكن لخوارزميتي فرز الحمام وفرز العد فرز n عنصر بيانات بمفاتيح تتراوح من 0 إلى K − 1 في زمن O ( n + K ) . في فرز الحمام (الذي يُسمى غالبًا فرز الدلو)، تُوزَّع مؤشرات عناصر البيانات على جدول من الدلو، ممثلًا بأنواع بيانات تجميعية مثل القوائم المتصلة ، باستخدام المفاتيح كمؤشرات في الجدول. ثم تُدمج جميع الدلو معًا لتكوين قائمة الإخراج. [ 12 ] أما فرز العد، فيستخدم جدول عدادات بدلًا من جدول الدلو، لتحديد عدد العناصر التي تحمل كل مفتاح. بعد ذلك، تُستخدم عملية حساب المجموع البادئ لتحديد نطاق المواضع في الإخراج المُفرز التي يجب وضع القيم التي تحمل كل مفتاح فيها. أخيرًا، في تمريرة ثانية على المدخلات، يُنقل كل عنصر إلى موضع مفتاحه في مصفوفة الإخراج. [ 13 ] تتضمن كلتا الخوارزميتين حلقات بسيطة فقط على بيانات الإدخال (تستغرق وقتًا O ( n ) ) وعلى مجموعة المفاتيح الممكنة (تستغرق وقتًا O ( K ) )، مما يعطي حدًا زمنيًا إجماليًا قدره O ( n + K ) .
فرز الجذر هو خوارزمية فرز تعمل مع المفاتيح الكبيرة بشكل أفضل من فرز الحمام أو فرز العد، وذلك من خلال إجراء عدة دورات على البيانات. في كل دورة، يتم فرز المدخلات باستخدام جزء فقط من المفاتيح، وذلك باستخدام خوارزمية فرز مختلفة (مثل فرز الحمام أو فرز العد) مناسبة فقط للمفاتيح الصغيرة. لتقسيم المفاتيح إلى أجزاء، تحسب خوارزمية فرز الجذر الترميز الموضعي لكل مفتاح، وفقًا لجذر مُختار ؛ ثم، يكون الجزء من المفتاح المستخدم في الدورة رقم i من الخوارزمية هو الرقم رقم i في الترميز الموضعي للمفتاح الكامل، بدءًا من الرقم الأقل أهمية وصولًا إلى الرقم الأكثر أهمية. لكي تعمل هذه الخوارزمية بشكل صحيح، يجب أن تكون خوارزمية الفرز المستخدمة في كل دورة على البيانات مستقرة : أي يجب ألا تتبادل العناصر ذات الأرقام المتساوية مواقعها. ولتحقيق أعلى كفاءة، يُفضل اختيار الجذر قريبًا من عدد عناصر البيانات، n . بالإضافة إلى ذلك، يسمح استخدام قوة للعدد اثنين قريبة من n كأساس بحساب المفاتيح لكل تمريرة بسرعة باستخدام عمليات الإزاحة الثنائية السريعة وعمليات القناع فقط. مع هذه الخيارات، ومع استخدام فرز الحمام أو فرز العد كخوارزمية أساسية، يمكن لخوارزمية فرز الأساس فرز n عنصر بيانات بمفاتيح في النطاق من 0 إلى K − 1 في زمن O ( n log n K ) . [ 14 ]
الخوارزميات النظرية
طُوِّرت العديد من خوارزميات فرز الأعداد الصحيحة، وقد أظهر تحليلها النظري تفوقها على خوارزميات الفرز المقارن، وفرز خانات الحمام، وفرز الجذر، وذلك عند استخدام توليفات كبيرة كافية من المعاملات التي تحدد عدد العناصر المراد فرزها، ونطاق المفاتيح، وحجم كلمة الآلة. ويعتمد اختيار الخوارزمية الأفضل أداءً على قيم هذه المعاملات. ومع ذلك، ورغم مزاياها النظرية، لا تُعدّ هذه الخوارزميات تحسينًا يُذكر للنطاقات النموذجية لهذه المعاملات التي تظهر في مسائل الفرز العملية. [ 9 ]
خوارزميات للمفاتيح الصغيرة
يمكن استخدام شجرة فان إمده بواس كطابور أولوية لفرز مجموعة من n مفتاحًا، يتراوح كل منها بين 0 و K − 1 ، في زمن قدره O ( n log log K ) . يُعد هذا تحسينًا نظريًا على فرز الجذر عندما تكون قيمة K كبيرة بما يكفي. مع ذلك، يتطلب استخدام شجرة فان إمده بواس إما ذاكرة قابلة للعنونة المباشرة بسعة K كلمة، أو محاكاتها باستخدام جدول تجزئة ، مما يقلل المساحة إلى خطية ولكنه يجعل الخوارزمية عشوائية. يُعد طابور الأولوية Y-fast لـ Willard (1983) طابور أولوية آخر ذو أداء مشابه (بما في ذلك الحاجة إلى العشوائية في شكل جداول تجزئة) .
طوّر كيركباتريك وريش (1984) تقنية أكثر تطورًا ذات طابع مشابه وأداء نظري أفضل . لاحظا أن كل دورة من فرز الجذر يمكن تفسيرها كتقنية لتقليل النطاق، حيث تُقلل، في زمن خطي، الحد الأقصى لحجم المفتاح بمعامل n ؛ بينما تُقلل تقنيتهما حجم المفتاح إلى الجذر التربيعي لقيمته السابقة (أي تُنصف عدد البتات اللازمة لتمثيل المفتاح)، وذلك أيضًا في زمن خطي. وكما هو الحال في فرز الجذر، يُفسران المفاتيح على أنها أعداد ثنائية الأرقام أساسها b، حيث b أساسها يساوي تقريبًا √K . ثم يُصنفان العناصر المراد فرزها في مجموعات وفقًا لأرقامها العليا، في زمن خطي، باستخدام إما ذاكرة ذات عناوين مباشرة كبيرة ولكن غير مهيأة ، أو جدول تجزئة. لكل مجموعة عنصر ممثل، وهو العنصر الموجود في المجموعة الذي يحمل أكبر مفتاح؛ ثم يُرتبان قائمة العناصر باستخدام الأرقام العليا للعناصر الممثلة والأرقام الدنيا للعناصر غير الممثلة كمفاتيح. بإعادة تجميع العناصر من هذه القائمة في مجموعات، يمكن ترتيب كل مجموعة ترتيبًا تصاعديًا، وباستخراج العناصر الممثلة من القائمة المرتبة، يمكن دمج المجموعات معًا لترتيبها تصاعديًا. وهكذا، في زمن خطي، تُختزل مشكلة الترتيب إلى مشكلة ترتيب تكرارية أخرى تكون فيها المفاتيح أصغر بكثير، أي الجذر التربيعي لقيمتها السابقة. يؤدي تكرار هذا الاختزال النطاقي حتى تصبح المفاتيح صغيرة بما يكفي لترتيب المجموعات إلى خوارزمية بزمن تشغيل O( n log log n K ) .
تسمح خوارزمية عشوائية معقدة لهان وثورب (2002) في نموذج حساب ذاكرة الوصول العشوائي للكلمات بتقليل هذه الحدود الزمنية إلى O( n √ log log K ) .
خوارزميات للكلمات الكبيرة
يُقال إن خوارزمية فرز الأعداد الصحيحة غير محافظة إذا تطلبت حجم كلمة w أكبر بكثير من log max( n , K ) . [ 15 ] كمثال متطرف، إذا كان w ≥ K ، وكانت جميع المفاتيح متميزة، فيمكن فرز مجموعة المفاتيح في وقت خطي بتمثيلها كمتجه بت ، مع بت 1 في الموضع i عندما يكون i أحد مفاتيح الإدخال، ثم إزالة البت الأقل أهمية بشكل متكرر. [ 16 ]
تستخدم خوارزمية الفرز المُعبأ غير المحافظة لألبرز وهاجيروب (1997) روتينًا فرعيًا، مبنيًا على شبكة الفرز الثنائي لكين باتشر ، لدمج سلسلتين مُرتبتين من المفاتيح، بحيث تكون كل سلسلة قصيرة بما يكفي لتعبئتها في كلمة واحدة. يتم تحويل مُدخل خوارزمية الفرز المُعبأ، وهو عبارة عن سلسلة من العناصر المخزنة عنصرًا واحدًا في كل كلمة، إلى شكل مُعبأ، أي سلسلة من الكلمات تحتوي كل منها على عدة عناصر مُرتبة، وذلك باستخدام هذا الروتين الفرعي بشكل متكرر لمضاعفة عدد العناصر المُعبأة في كل كلمة. بمجرد أن تصبح السلسلة في شكل مُعبأ، يستخدم ألبرز وهاجيروب نوعًا من فرز الدمج لفرزها؛ وعند دمج سلسلتين لتكوين سلسلة واحدة أطول، يمكن استخدام نفس روتين الفرز الثنائي لاستخراج الكلمات المُعبأة بشكل متكرر، والتي تتكون من أصغر العناصر المتبقية من السلسلتين. تُحقق هذه الخوارزمية تسارعًا كافيًا من تمثيلها المُعبأ لفرز مُدخلاتها في وقت خطي كلما أمكن أن تحتوي كلمة واحدة على Ω(log n log log n ) مفتاحًا. أي عندما يكون log K log n log log n ≤ cw لبعض الثوابت c > 0 .
خوارزميات لعدد قليل من العناصر
تُعدّ خوارزميات فرز الحمام، وفرز العد، وفرز الجذر، وفرز شجرة فان إمده بواس، الأنسب عندما يكون حجم المفتاح صغيرًا؛ أما مع المفاتيح الكبيرة، فتصبح أبطأ من خوارزميات الفرز المقارن. مع ذلك، عندما يكون حجم المفتاح أو حجم الكلمة كبيرًا جدًا مقارنةً بعدد العناصر (أو عندما يكون عدد العناصر صغيرًا)، قد يصبح من الممكن الفرز بسرعة باستخدام خوارزميات مختلفة تستفيد من التوازي المتأصل في القدرة على إجراء العمليات الحسابية على الكلمات الكبيرة.
قدم أجتاي وفريدمان وكوملوس (1984) نتيجة مبكرة في هذا الاتجاه باستخدام نموذج الحوسبة القائم على فحص الخلايا (وهو نموذج اصطناعي تُقاس فيه تعقيدات الخوارزمية بعدد عمليات الوصول إلى الذاكرة التي تُجريها فقط). واستنادًا إلى عملهم، وصف فريدمان وويلارد (1994) بنيتين للبيانات، هما كومة Q والكومة الذرية، واللتان يمكن تنفيذهما على جهاز ذي وصول عشوائي. تُعد كومة Q نسخة متوازية بتات من شجرة ثنائية ، وتتيح تنفيذ عمليات قائمة الانتظار ذات الأولوية واستعلامات الخلف والسابق في وقت ثابت لمجموعات من O ((log N ) 1/4 ) عنصرًا، حيث N ≤ 2w هو حجم الجداول المحسوبة مسبقًا اللازمة لتنفيذ بنية البيانات. أما الكومة الذرية فهي شجرة B حيث يُمثل كل عقدة في الشجرة بكومة Q؛ وتتيح عمليات قائمة الانتظار ذات الأولوية في وقت ثابت (وبالتالي الفرز) لمجموعات من (log N ) O (1) عنصرًا.
قدم أندرسون وآخرون (1998) خوارزمية عشوائية تُسمى فرز التوقيع، تسمح بفرز مجموعات تصل إلى 2O((log w) 1/2 − ε) عنصرًا في وقت خطي ، لأي ثابت ε > 0. وكما في خوارزمية كيركباتريك وريش ، يُجرون اختزال النطاق باستخدام تمثيل للمفاتيح كأرقام في النظام العددي ذي الأساس b، مع اختيار دقيق لقيمة b . تستبدل خوارزمية اختزال النطاق كل رقم بتوقيع، وهو قيمة مُجزأة بـ O (log n ) بت، بحيث يكون لكل رقم توقيع مختلف. إذا كانت n صغيرة بما يكفي، ستكون الأرقام الناتجة عن عملية الاستبدال هذه أصغر بكثير من المفاتيح الأصلية، مما يسمح لخوارزمية الفرز المُعبأ غير المُحافظة لألبرز وهاجيروب (1997) بفرز الأرقام المُستبدلة في وقت خطي. من القائمة المرتبة للأرقام المستبدلة، من الممكن تشكيل شجرة مضغوطة للمفاتيح في وقت خطي، ويمكن فرز أبناء كل عقدة في الشجرة بشكل متكرر باستخدام مفاتيح بحجم b فقط ، وبعد ذلك ينتج عن اجتياز الشجرة الترتيب المرتب للعناصر.
الخوارزميات العابرة للثنائية
قدّم فريدمان وويلارد (1993) نموذج التحليل الثنائي لخوارزميات فرز الأعداد الصحيحة، حيث لا يُفترض أي شيء بخصوص نطاق مفاتيح الأعداد الصحيحة، ويجب تحديد أداء الخوارزمية بدالة لعدد قيم البيانات فقط. وبدلاً من ذلك، في هذا النموذج، يُفترض أن زمن تشغيل الخوارزمية على مجموعة من n عنصرًا هو أسوأ زمن تشغيل ممكن لأي توليفة ممكنة من قيم K و w . كانت أول خوارزمية من هذا النوع هي خوارزمية فرز شجرة الدمج لفريدمان وويلارد ، والتي تعمل في زمن O( n log n / log log n ) ؛ وهذا يُعد تحسينًا على فرز المقارنة لأي اختيار لـ K و w . ويُحسّن إصدار بديل من خوارزميتهما، يتضمن استخدام الأرقام العشوائية وعمليات القسمة الصحيحة، هذا الزمن إلى O( n √ log n ) .
منذ ذلك الحين، تم تطوير خوارزميات أفضل. على سبيل المثال، من خلال تطبيق تقنية كيركباتريك-رايش لتقليل النطاق بشكل متكرر حتى تصبح المفاتيح صغيرة بما يكفي لتطبيق خوارزمية فرز ألبرز-هاجيروب المعبأة، يصبح من الممكن الفرز في زمن O ( n log log n ) ؛ ومع ذلك، يتطلب جزء تقليل النطاق في هذه الخوارزمية إما ذاكرة كبيرة (تتناسب مع √K ) أو عشوائية على شكل جداول تجزئة. [ 17 ]
أظهر هان وثورب (2002) كيفية الفرز في زمن عشوائي O( n √ log log n ) . تعتمد تقنيتهما على استخدام أفكار متعلقة بفرز التوقيعات لتقسيم البيانات إلى قوائم فرعية صغيرة متعددة، بحجم صغير بما يكفي ليتمكن فرز التوقيعات من فرز كل منها بكفاءة. من الممكن أيضًا استخدام أفكار مماثلة لفرز الأعداد الصحيحة بشكل حتمي في زمن O ( n log log n ) ومساحة خطية. [ 18 ] باستخدام عمليات حسابية بسيطة فقط (بدون ضرب أو بحث في الجداول)، يمكن الفرز في زمن متوقع عشوائي O ( n log log n ) [ 19 ] أو بشكل حتمي في زمن O ( n (log log n ) 1 + ε ) لأي ثابت ε > 0. [ 1 ]
مراجع
- الحواشي
- 1 2 هان وثورب (2002) .
- ^ فريدمان وويلارد (1993) .
- ↑ يعود السؤال حول ما إذا كان ينبغي السماح بعمليات ضرب الأعداد الصحيحة أو عمليات البحث في الجداول إلى فريدمان وويلارد (1993) ؛ انظر أيضًا أندرسون، ميلترسن وثورب (1999) .
- ^ ريف (1985) ؛ تعليق في كول وفيشكين (1986) ؛ هاجيروب (1987) ; بهات وآخرون. (1991) ; ألبرز وهاجيروب (1997) .
- ^ أجروال وفيتر (1988) .
- ↑ فرهادي وآخرون (2020) .
- 1 2 تشودري (2008) .
- ↑ ماكيلروي، بوستيك وماكيلروي (1993) ؛ أندرسون ونيلسون (1998) .
- 1 2 رحمان ورامان (1998) .
- ↑ بيدرسن (1999) .
- ↑ معايير الرياضيات المنفصلة DARPA HPCS مؤرشفة في 2016-03-10 في Wayback Machine ، دنكان أ. بويل، جامعة ساوث كارولينا، تم استرجاعها في 2011-04-20.
- ↑ جودريتش وتاماسيا (2002) . على الرغم من أن كورمن وآخرون (2001) يصفون أيضًا نسخة من خوارزمية الفرز هذه، إلا أن النسخة التي يصفونها مُكيَّفة للمدخلات التي تكون فيها المفاتيح أعدادًا حقيقية ذات توزيع معروف، بدلاً من فرز الأعداد الصحيحة.
- ↑ كورمن وآخرون (2001) ، 8.2 فرز العد، ص 168-169.
- ↑ Comrie (1929–1930) ؛ Cormen et al. (2001) ، 8.3 Radix Sort ، ص 170–173.
- ^ كيركباتريك ورايش (1984) ؛ ألبرز وهاجيروب (1997) .
- ^ كيركباتريك ورايش (1984) .
- ↑ أندرسون وآخرون (1998) .
- ↑ هان (2004) .
- ↑ ثورب (2002)
- مصادر ثانوية
- تشودري، رضاول أ. (2008)، "التكافؤ بين طوابير الأولوية والفرز" ، في كاو، مينغ يانغ (محرر)، موسوعة الخوارزميات ، سبرينغر، ص 278-281 ، ISBN 9780387307701.
- كورمن، توماس هـ .؛ ليسرسون، تشارلز إي .؛ ريفست، رونالد ل.؛ شتاين ، كليفورد (2001)، مقدمة في الخوارزميات ( الطبعة الثانية)، مطبعة معهد ماساتشوستس للتكنولوجيا وماكجرو هيل ، رقم ISBN 0-262-03293-7.
- جودريتش، مايكل ت .؛ تاماسيا، روبرتو ( 2002)، "4.5 فرز الدلو وفرز الجذر"، تصميم الخوارزميات: الأسس والتحليل وأمثلة الإنترنت ، جون وايلي وأولاده، ص 241-243 .
- المصادر الأولية
- أغاروال، ألوك؛ فيتر، جيفري س. (سبتمبر 1988)، "تعقيد المدخلات/المخرجات في الفرز والمشاكل ذات الصلة"، اتصالات رابطة مكائن الحوسبة ، 31 (9): 1116-1127 ، doi : 10.1145/48529.48535 ، S2CID 6264984
- أجتاي، م .؛ فريدمان، م.؛ كوملوس ، ج. (1984)، "دوال التجزئة لقوائم الانتظار ذات الأولوية"، المعلومات والتحكم ، 63 (3): 217-225 ، doi : 10.1016/S0019-9958(84)80015-7 ، MR 0837087 .
- ألبرز، سوزان ؛ هاجيروب، توربن (1997)، "تحسين فرز الأعداد الصحيحة المتوازية دون كتابة متزامنة"، المعلومات والحوسبة ، 136 (1): 25-51 ، CiteSeerX 10.1.1.53.498 ، doi : 10.1006/inco.1997.2632 ، MR 1457693 ، S2CID 1284673 .
- أندرسون، آرني؛ هاجيروب، توربين؛ نيلسون، ستيفان. رامان، راجيف (1998)، “الفرز في الوقت الخطي؟”، مجلة علوم الكمبيوتر والنظام ، 57 (1): 74–93 ، دوى : 10.1006/jcss.1998.1580 ، hdl : 11858/00-001M-0000-0014-A1DE-D ، MR 1649809 .
- أندرسون، آرني؛ نيلسون، ستيفان (1998)، "تنفيذ فرز الجذر"، مجلة ACM للخوارزميات التجريبية ، 3 : 7–es، CiteSeerX 10.1.1.54.4536 ، doi : 10.1145/297096.297136 ، MR 1717389 ، S2CID 2125652 .
- أندرسون، آرني؛ ميلترسن، بيتر برو؛ ثورب، ميكيل (1999)، "يمكن تنفيذ أشجار الدمج باستخدام تعليمات AC 0 فقط"، علوم الحاسوب النظرية ، 215 ( 1-2 ): 337-344 ، CiteSeerX 10.1.1.32.9401 ، doi : 10.1016/S0304-3975(98)00172-8 ، MR 1678804 .
- بهات، بي سي بي؛ ديكس، ك.؛ هاجيروب، ت.؛ براساد، في سي؛ رادزيك، ت.؛ ساكسينا، س. (1991)، "تحسين فرز الأعداد الصحيحة المتوازي الحتمي"، المعلومات والحوسبة ، 94 (1): 29-47 ، doi : 10.1016/0890-5401(91)90031-V ، MR 1123154 .
- كول، ر.؛ فيشكين، يو. (1986)، "رمي العملة الحتمي مع تطبيقات لترتيب القوائم المتوازية الأمثل"، المعلومات والتحكم ، 70 (1): 32-53 ، doi : 10.1016/S0019-9958(86)80023-7.
- كومري ، إل جيه (1929-1930)، "آلات الجدولة هوليريث وباورز"، معاملات جمعية مستخدمي آلات المكاتب المحدودة : 25-37. استشهد به ثورب (2007) كمصدر مبكر لفرز الجذر .
- فرهادي، علي رضا؛ حاجي آغاي، محمد تقي ؛ لارسن، كاسبر غرين؛ شي، إيلين (سبتمبر 2020)، "الحدود الدنيا لفرز الأعداد الصحيحة في الذاكرة الخارجية عبر ترميز الشبكة"، مجلة اتصالات رابطة مكائن الحوسبة ، 63 (10): 97-105 ، arXiv : 1811.01313 ، doi : 10.1145/3416268 ، S2CID 221865838 .
- فريدمان، مايكل ل .؛ ويلارد، دان إي. (1993)، "تجاوز حدود نظرية المعلومات باستخدام أشجار الاندماج"، مجلة علوم الحاسوب والأنظمة ، 47 (3): 424-436 ، doi : 10.1016/0022-0000(93)90040-4 ، MR 1248864 .
- فريدمان، مايكل ل .؛ ويلارد، دان إي. (1994)، "خوارزميات ثنائية التفرع للأشجار الممتدة الدنيا وأقصر المسارات"، مجلة علوم الحاسوب والنظم ، 48 (3): 533-551 ، doi : 10.1016/S0022-0000(05)80064-9 ، MR 1279413 .
- هاجيروب، توربن (1987)، "نحو فرز الدلو المتوازي الأمثل"، المعلومات والحوسبة ، 75 (1): 39-51 ، doi : 10.1016/0890-5401(87)90062-9 ، MR 0910976 .
- هان، ييجي (2004)، "الفرز الحتمي في زمن O ( n log log n ) ومساحة خطية"، مجلة الخوارزميات ، 50 (1): 96-105 ، doi : 10.1016/j.jalgor.2003.09.001 ، MR 2028585 .
- هان، ييجي؛ ثورب، م. (2002)، "فرز الأعداد الصحيحة في زمن متوقع O( n √ log log n ) ومساحة خطية"، وقائع الندوة السنوية الثالثة والأربعين حول أسس علوم الحاسوب (FOCS 2002) ، جمعية مهندسي الكهرباء والإلكترونيات، ص 135-144 ، doi : 10.1109/SFCS.2002.1181890 ، S2CID 5245628 .
- كيركباتريك، ديفيد ؛ رايش، ستيفان (1984)، "الحدود العليا لفرز الأعداد الصحيحة على آلات الوصول العشوائي"، علوم الحاسوب النظرية ، 28 (3): 263-276 ، doi : 10.1016/0304-3975(83)90023-3 ، MR 0742289 .
- ماكلروي، بيتر م.؛ بوستيك، كيث؛ ماكلروي، م. دوغلاس (1993)، "التصنيف الهندسي الجذري" (ملف PDF) ، أنظمة الحوسبة ، 6 ( 1): 5-27.
- بيدرسن، مورتن نيكولاي (1999)، دراسة الأهمية العملية لخوارزميات ذاكرة الوصول العشوائي للكلمات لفرز الأعداد الصحيحة الداخلية ، رسالة ماجستير، قسم علوم الحاسوب، جامعة كوبنهاغن، الدنمارك، مؤرشفة من الأصل في 16 مارس 2012 ، تم استرجاعها في 21 أبريل 2011.
- رحمان، نائلة؛ رامان، راجيف (1998)، "دراسة تجريبية للتوازي على مستوى الكلمات في بعض خوارزميات الفرز"، هندسة الخوارزميات، ورشة العمل الدولية الثانية، WAE '92، ساربروكن، ألمانيا، 20-22 أغسطس 1998، وقائع المؤتمر (PDF) ، معهد ماكس بلانك لعلوم الحاسوب ، الصفحات 193-203 .
- ريف، جون هـ. (1985)، "خوارزمية متوازية مثلى لفرز الأعداد الصحيحة"، وقائع الندوة السنوية السادسة والعشرين حول أسس علوم الحاسوب (FOCS 1985) ، جمعية مهندسي الكهرباء والإلكترونيات، ص 496-504 ، doi : 10.1109/SFCS.1985.9 ، ISBN 0-8186-0644-4، S2CID 5694693 .
- ثورب، ميكيل (2002)، "الفرز العشوائي في زمن O ( n log log n ) ومساحة خطية باستخدام الجمع والإزاحة والعمليات المنطقية الثنائية"، مجلة الخوارزميات ، 42 (2): 205-230 ، CiteSeerX 10.1.1.55.4443 ، doi : 10.1006/jagm.2002.1211 ، MR 1895974 ، S2CID 9700543 .
- ثورب، ميكيل (2003)، "حول تطبيقات AC 0 لأشجار الاندماج والأكوام الذرية" ، وقائع الندوة السنوية الرابعة عشرة لجمعية ACM-SIAM حول الخوارزميات المنفصلة (بالتيمور، ماريلاند، 2003) ، نيويورك: ACM، الصفحات 699-707 ، ISBN 978-0-89871-538-5، MR 1974982 .
- ثورب، ميكيل (2007)، "التكافؤ بين طوابير الأولوية والفرز"، مجلة ACM ، 54 (6): المادة 28، doi : 10.1145/1314690.1314692 ، MR 2374029 .
- ويلارد، دان إي. (1983)، "استعلامات النطاق في أسوأ الحالات اللوغاريتمية ممكنة في الفضاء Θ( N ) "، رسائل معالجة المعلومات ، 17 (2): 81-84 ، doi : 10.1016/0020-0190(83)90075-3 ، MR 0731126 .
- خوارزميات الفرز
