Ali Ahmed55 نشر 14 نوفمبر أرسل تقرير نشر 14 نوفمبر السلام عليكم هم بس دول العاملين المهمين جدا لمعرفه ادء الخورزميه Space Complexity and Time Complexity ؟ 1 اقتباس
0 Mustafa Suleiman نشر 14 نوفمبر أرسل تقرير نشر 14 نوفمبر هما الأساس لأي خوارزمية من الناحية النظرية، حيث Time Complexity يقيس عدد العمليات التي تقوم بها الخوارزمية كدالة في حجم المدخلات، بمعنى كلما زاد حجم المدخلات، كم من الوقت الإضافي سيستغرقه البرنامج؟ فالخوارزمية البطيئة لا مشكلة بها لـ 10 عناصر، لكنها ستستغرق ساعات أو أيام لمعالجة مليون عنصر، بالتالي المقياس يساعدنا على فهم قابلية الـ Scalability أو التوسع للحل. وSpace Complexity يقيس مقدار الذاكرة الإضافية التي تستخدمها الخوارزمية كدالة في حجم المدخلات، أي بزيادة حجم المدخلات، كم من الذاكرة الإضافية سيحتاجها البرنامج؟ حيث استخدام ذاكرة هائلة سيؤدي إلى بطء النظام أو انهياره، خاصة في البيئات ذات الموارد المحدودة مثل الهواتف المحمولة أو الخوادم المشتركة. لكن عمليًا، هناك مقاييس أخرى، وأهما مدى نسبة صحة الخوارزمية بالنسبة لمختلف الحالات، بالإضافة إلى مدى بساطة الخوارزمية ومدى تعقيدها، وأداء ذاكرة التخزين المؤقت، قابلية التوسع في الأنظمة الموزعة، الاستقرار واستهلاك الطاقة. 1 اقتباس
0 Ali Ahmed55 نشر 14 نوفمبر الكاتب أرسل تقرير نشر 14 نوفمبر الف شكراا جدا لحضرتك جزاك الله كل خير اقتباس
0 محمد_عاطف نشر 16 نوفمبر أرسل تقرير نشر 16 نوفمبر وعليكم السلام ورحمة الله وبركاته. الإجابة بإختصار هي لا فهما ليسا العوامل الوحيدة ولكنهما الأهم والأشهر في التحليل النظري ومقارنة الخوارزميات. ففي الواقع العملي في هندسة البرمجيات هناك عوامل أخرى قد تكون بنفس الأهمية أو حتى أهم بناء على الموقف. فإنه يتم التركيز على التعقيد الزمني (Time Complexity) و التعقيد المكاني (Space Complexity) لأنهما يمثلان الموردين الأساسيين المحدودين في أي جهاز كمبيوتر: الوقت (Time): كم ستستغرق الخوارزمية من وقت لتنفيذها مع زيادة حجم المدخلات؟ (يقاس بعدد العمليات). المساحة (Space): كم ستحتاج الخوارزمية من ذاكرة (RAM) مع زيادة حجم المدخلات؟ يستخدم تحليل (Big O Notation) لوصف سلوكهما التقريبي (Asymptotic behavior) وهذا ممتاز للمقارنات النظرية. وعند كتابة برامج حقيقية، توازن بين Time/Space وعوامل أخرى: سهولة القراءة والصيانة (Readability & Maintainability) : ففي كثير من الأحيان تكون الخوارزمية الأسرع معقدة جدًا وصعبة الفهم والأهم هو أن الكود يقرأ أكثر مما يكتب فإذا كان فريقك والأشخاص الأخرين لا يستطيع فهم الخوارزمية فمن المستحيل صيانتها أو تطويرها أو حتى إصلاح أخطائها. المفاضلة (Trade-off) فقد تختار خوارزمية أبطأ قليلًا إذا كانت أبسط وأسهل في الصيانة. بساطة التنفيذ (Implementation Simplicity) فكمم من الوقت سيستغرق المطور لكتابة هذه الخوارزمية بشكل صحيح فالخوارزميات المعقدة عرضة للأخطاء (Bugs) بشكل أكبر وصعوبة تنفيذها وتطويرها كبيرة . إذا الخلاصة أن ال Time وال Space هما الأساس الأكاديمي لمقارنة كفاءة الخوارزمية ولكن في هندسة البرمجيات أنت تبحث عن الخوارزمية الأفضل للمشكلة وهذا يشمل الموازنة بين الكفاءة وسهولة الصيانة ووقت التطوير والسياق الذي ستعمل فيه. 1 اقتباس
0 Ali Ahmed55 نشر 16 نوفمبر الكاتب أرسل تقرير نشر 16 نوفمبر الف شكراا جدا لحضرتكم جزاك الله كل خير اقتباس
السؤال
Ali Ahmed55
السلام عليكم
هم بس دول العاملين المهمين جدا لمعرفه ادء الخورزميه Space Complexity and Time Complexity ؟
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.