خوارزمية

إضفاء الطابع الرسمي

الخوارزميات ضرورية كى تقوم أجهزة الكمبيوتر بتفعيل البيانات بطريقة عملية. كثير من برنامج الكمبيوتر تحتوي على الخوارزميات التي تقوم بتفصيل تعليمات محددة للكمبيوتر التي ينبغي أن تؤدي (في ترتيب معين) للاضطلاع بمهمة محددة, مثل حساب رواتب الموظفين أو طباعة بطاقات تقارير الطلاب , وبالتالي، يمكن اعتبار الخوارزميات أن تكون أي تسلسل من العمليات التي يمكن محاكاتها من قبل نظام تكامل تورنغ . الكتاب الذين يؤكدون هذه الأطروحة يشملون منسكي (1967)، سافاج (1987) وجورفيتش (2000):
 منسكي: "ولكننا سوف تحافظ أيضا، مع آلان تورنغ ... أن أي إجراء يمكن بطريقة " طبيعية "أن يسمى فعالا، ويمكن في الواقع أن يتحقق أو يدرك من قبل آلة (بسيطة) وبالرغم من أن هذا قد يبدو متطرفا، فالحجج ... في صالحها يصعب دحضها".
جورفيتش: "... حجة تورنغ الرسمية لصالح أطروحته تبرر أقوى أطروحة: كل خوارزمية يمكن محاكاتها بواسطة آلة تورنغ ... وفقا لسافاج [1987]، الخوارزمية هي عملية حسابية محددة بواسطة آلة تورنغ".
عادة، عندما تترافق أى خوارزمية مع معلومات المعالجة ، تتم قراءة البيانات من مصدر المدخلات، وتكتب إلى جهاز إخراج ، و / أو يتم تخزينها لمزيد من المعالجة. وتعتبر البيانات المخزنة جزءا من الحالة الداخلية للكيان الذي يقوم بأداء الخوارزمية. في الممارسة العملية، يتم تخزين حالة النظام في واحدة أو أكثر من بنية البيانات .
لبعض هذه العملية الحسابية، الخوارزمية يجب تعريف الخوارزمية بطريقة صارمة: محددا الطريقة التي تطبق في جميع الظروف الممكنة التي يمكن أن تنشأ. وهذا هو ،فإن أي خطوات مشروطة يجب التعامل معها بمنهجية، كل حالة على حدة؛ وإن معايير كل حالة يجب أن تكون واضحة (ومحسوب).
لأن الخوارزمية هي قائمة دقيقة لخطوات دقيقة، إن ترتيب الحوسبة يعد أمرا بالغ الأهمية لأداء الخوارزمية دائما. وعادة ما يفترض أن التعليمات تكون مدرجة بشكل صريح ، وتوصف بأنها تبدأ من "أعلى" والذهاب إلى " أسفل"، وهي الفكرة التي توصف رسميا من قبل أكثر تدفق عناصر التحكم.
حتى الآن، وقد أدت هذه المناقشة لإضفاء الطابع الرسمي على الخوارزمية قد افترضت بناء برمجة أمرية. هذا هو المفهوم الأكثر شيوعا، ومحاولات وصف المهمة في وسائل منفصلة، "ميكانيكية". فريدة من نوعها لهذا المفهوم من الخوارزميات رسميا هو تعيين (علوم الحاسوب)، وتحديد قيمة المتغير. أنه مستمد من الحدس من "الذاكرة" باعتبارها scratchpad. هناك على سبيل المثال أدناه مثل هذا التعيين بالأسفل.
لبعض المفاهيم البديلة لما يشكل الخوارزمية انظر البرمجة الوظيفية و البرمجة منطقية.

التعبير عن الخوارزمية

ويمكن التعبير عن الخوارزميات في العديد من أنواع التدوينات، بما في ذلك اللغة الطبيعية و أشباه الكود، المخططات الانسيابية، دراكون-الرسم البياني و لغات البرمجة أو جداول التحكم (التي تتم معالجتها بواسطة المترجمين الفوريين).

خوارزميات حاسوبية

في أنظمة الحاسوب, يمثل الخوارزم في الأساس صورة من منطق أعيد كتابته بواسطة (برمجيات) ليصبح أكثر فعالية يمكن استغلاله في الحواسيب والحصول على النتائج (مخرجات) من بيانات معطاة (مدخلات).

خوارزمية إقليدس

تظهر خوارزمية إقليدس في المسألة الثانية من كتابه ("نظرية الأعداد الأساسية"). يعرض إقليدس المسألة: "إذا كان لدينا عددان أوليان فيما بينهما، لإيجاد قياسهما المشترك الأكبر". يقوم بتعريف "العدد [بأنه] متعدد مؤلف من وحدات":، عدد حسابي، عدد موجب لا يتضمن الصفر. ومن أجل "القياس" فيعني أن نضع قطعة قياس طولية s بشكل متعاقب (q من المرات) على طول القطعة الأطول l حتى يتبقى الجزء r أقل من القطعة الأقصر s. في العبارات الحديثة نقول, الباقي r = l - q*s، q هي حاصل القسمة, r "باقي القسمة", الجزء الكسري المتبقي بعد إجراء القسمة.

برنامج بسيط لمحاكاة خوارزمية إقليدس

المثال التالي بلغة بيسك يمثل برنامجاً بسيطاً ينفذ خوارزمية إقليدس:
   5  REM Euclid's algorithm for greatest common divisor   6  PRINT "Type two integers greater than 0"   10 INPUT A,B   20 IF B=0 THEN GOTO 80   30 IF A > B THEN GOTO 60   40 LET B=B-A   50 GOTO 20   60 LET A=A-B   70 GOTO 20   80 PRINT A   90 END

التحليل الخوارزمي

من المهم كثيرا أن نعرف كم من مورد معين (مثل الوقت أو التخزين) مطلوب نظريا لخوارزمية معينة. وقد وضعت طرق لتحليل الخوارزميات للحصول على هذه الإجابات الكمية (تقديرات)، على سبيل المثال، خوارزمية الفرز أعلاه لديه شرط وقت (O(n، وذلك باستخدام O تدوين كبيرة مع n حسب طول القائمة. في جميع الأوقات الخوارزمية تحتاج فقط إلى تذكر قيمتين: العثور على أكبر عدد حتى الآن، وموقعها الحالي في قائمة المدخلات. لذلك يجب أن يكون لها متطلبات من (O(1، إذا المساحة المطلوبة لتخزين أرقام المدخلات لا تحصى.
قد تقوم عدة خوارزميات بإكمال المهمة نفسها من خلال مجموعة مختلفة من التعليمات في وقت أقل أو أكثر، مساحة، أو جهد من غيرها. على سبيل المثال، خوارزمية البحث الثنائي عادة ما توفر قوة بحث متتابعة عندما تستخدم لعمليات البحث على طاولة القوائم التي تم فرزها.

تسريع الإف إف تي

لإضفاء التحسينات الممكنة حتى في بعض الخوارزميات "المبنية بشكل جيد"، وهذا ابتكار هام يتعلق بخوارزميات الإف إف تي (التي تستخدم بشكل كبير جدا في مجال معالجة الصور)، قد تمكن من خفض عدد مرات المعالجة بمعامل يصل إلى 10000 مرة. أثر هذا التسريع إلى تمكين الأجهزة الحاسوبية المحمولة (فضلا عن غيرها من الأجهزة) من استهلاك طاقة أقل.