--- title: Algorithms localeTitle: خوارزميات --- ## خوارزميات في علم الكمبيوتر ، الخوارزمية هي مواصفات لا لبس فيها لكيفية حل فئة من المشاكل. يمكن الخوارزميات إجراء العمليات الحسابية ومعالجة البيانات ومهام التفكير الآلي. الخوارزمية هي طريقة فعالة يمكن التعبير عنها ضمن كمية محددة من الزمان والمكان وفي لغة رسمية محددة بشكل جيد لحساب الدالة. بدءاً من حالة مبدئية ومدخلات أولية (ربما فارغة) ، تصف التعليمات حسابًا ، عندما يتم تنفيذه ، يستمر من خلال عدد محدود من الحالات المتعاقبة المحددة جيداً ، وينتج في النهاية "خرج" وينتهي في حالة النهاية النهائية. ليس الانتقال من حالة إلى أخرى بالضرورة محددًا. تتضمن بعض الخوارزميات ، المعروفة بالخوارزميات العشوائية ، مدخلات عشوائية. هناك متطلبات معينة يجب على الخوارزمية الالتزام بها: 1. الوضوح: كل خطوة في العملية محددة بدقة. 2. الحوسبة الفعالة: يمكن تنفيذ كل خطوة في العملية بواسطة جهاز كمبيوتر. 3. الإنتهاء: سوف ينتهي البرنامج بنجاح في نهاية المطاف. تتضمن بعض الأنواع الشائعة من الخوارزميات فرز الخوارزميات وخوارزميات البحث وخوارزميات الضغط. تتضمن فئات الخوارزميات Graph و Dynamic Programming و Sorting و Searching و Strings و Math و Computational Geometry و Optimization و Miscellaneous. على الرغم من أنه ليس من الناحية الفنية فئة من الخوارزميات ، غالبًا ما يتم تجميع تراكيب البيانات معها. ### نجاعة يتم الحكم على الخوارزميات بشكل عام من خلال كفاءتها ومقدار موارد الحوسبة التي يحتاجونها لإكمال مهمتهم. الطريقة الشائعة لتقييم الخوارزمية هي النظر إلى تعقيدها الزمني. يوضح هذا كيف ينمو وقت تشغيل الخوارزمية مع زيادة حجم الإدخال. بما أن الخوارزميات اليوم ، يجب أن تعمل على مدخلات البيانات الكبيرة ، فمن الضروري أن يكون لدينا خوارزميات لدينا وقت تشغيل سريع بشكل معقول. ### خوارزميات الفرز تأتي خوارزميات الفرز بمختلف النكهات حسب احتياجك. بعض ، شائعة جدا وتستخدم على نطاق واسع هي: #### فرز سريع لا يوجد مناقشة فرز يمكن أن تنتهي دون فرز سريع. المفهوم الأساسي هو في الرابط أدناه. [فرز سريع](http://me.dt.in.th/page/Quicksort/) #### دمج التصنيف يتم دمج خوارزمية الفرز التي تعتمد على مفهوم كيفية فرز المصفوفات لإعطاء صفائف مصنفة واحدة. قراءة المزيد عنها هنا- [دمج التصنيف](https://www.geeksforgeeks.org/merge-sort/) يؤكد منهج freeCodeCamp بشكل كبير على إنشاء الخوارزميات. هذا لأن خوارزميات التعلم هي طريقة جيدة لممارسة مهارات البرمجة. يقوم الباحثون بشكل متكرر باختبار المرشحين على الخوارزميات أثناء المقابلات الوظيفية لمطوري البرامج. ### مزيد من الموارد [مقدمة إلى الخوارزميات | Crash Course: Computer Science](https://www.youtube.com/watch?v=rL8X2mlNHPM) يقدم هذا الفيديو مقدمة سهلة وفعالة عن الخوارزميات التي تركز على خوارزميات الفرز والبحث في الرسم البياني. [ما هي الخوارزمية ولماذا يجب أن تهتم؟ | أكاديمية خان](https://www.youtube.com/watch?v=CvSOaYi89B4) يقدم هذا الفيديو الخوارزميات ويناقش باختصار بعض الاستخدامات البارزة لها. [15 فرز الخوارزميات في 6 دقائق تيمو بينجمان](https://www.youtube.com/watch?v=kPRA0W1kECg) يوضح هذا الفيديو بصريًا بعض خوارزميات الفرز الشائعة التي يتم تدريسها بشكل شائع في البرامج التدريبية ودورات علوم الكمبيوتر. [خوارزمية متخيل](http://algo-visualizer.jasonpark.me) هذا هو أيضا مشروع مفتوح المصدر جيد حقا يساعدك على تصور الخوارزميات.