شبكة محبي البرمجيات  🖥
شبكة محبي البرمجيات 🖥

@PrograminLovers

40 تغريدة 382 قراءة Jan 18, 2021
ما معني هياكل البيانات ؟
وما أهميتها في تعلم البرمجة ؟
ما الدور الذي تلعبه هياكل البيانات في حياتنا اليومية؟
ما علاقة هياكل البيانات بالواقع وكيف تستخدم في حلول المشاكل؟
ما أشهر أنواع هياكل البيانات وما وظائفهم؟
ثريد مميز يسلط الضوء علي هياكل البيانات وأهمية تعلمها ... 👇👇
في هندسة البرمجيات، فإن بنية البيانات هي طريقة خاصة لتخزين وتنظيم البيانات في الحاسوب بحيث يمكن استخدامها بكفاءة ، تناسب أنواع مختلفة من هياكل البيانات أنواع مختلفة من التطبيقات ، وبعضها مخصص بدرجة عالية لبعض المهام المحددة على سبيل المثال ، هياكل (trees) أو الأشجار >>
مناسبة تماما لتنفيذ قواعد البيانات، وتستخدم هياكل البيانات في كل برنامج تقريبا أو نظام برمجيات هناك هياكل بيانات محددة تعتبر من المكونات الأساسية للكثير من الخوارزميات الفعالة، وتجعل من الممكن إدارة كميات ضخمة من البيانات، مثل قواعد البيانات الكبيرة وخدمات الفهرسة على الإنترنت
ما معني هذه الهياكل ؟
Array data structure ,Linked List ,Stack, Queues ,Sorting, Tree, Graph
هل لديك أسئلة لماذا يجب أن أدرس جميع الأشياء المعقدة إذا لم يكن لها أي فائدة على الإطلاق؟
لماذا تطرح الشركات أسئلة تتعلق بهياكل البيانات والخوارزميات إذا لم تكن مفيدة في العمل اليومي ؟
يتجنب الكثير من المبرمجين المبتدئين وذوي الخبرة تعلم هياكل البيانات والخوارزميات لأنها معقدة ويعتقدون أنه لا يوجد استخدام لجميع الأشياء المذكورة أعلاه في الحياة الواقعية لذا قبل أن نناقش الموضوع سنطرح عليك مشكلة بسيطة وتحتاج إلى إيجاد حل لذلك.
إذا كنت بحاجة إلى البحث عن رقم الملف الخاص بك في 20000 صفحة من مستند PDF كيف ستفعل ذلك؟
إذا كنت ستحاول البحث عنه بشكل عشوائي أو بطريقة متسلسلة ، فسوف يستغرق الأمر وقتًا طويلاً قد تشعر بالإحباط بعد مرور بعض الوقت كما يمكنك تجربة حل آخر
1- يمكنك البحث بعنوان الملف داخل الكتاب
2- يمكنك البحث عن كلمة فريدة داخل الملف تصل بها الي رقم الصفحة
3- يمكنك الإنتقال تلقائي الي الصفحة رقم 10000 إن ظننت أن الملف موجود بها
هناك الكثير من الأمثلة التي يمكنك أن تجدها في حياتك اليومية لذلك إذا كنت تعتقد أن هذه المهارة مهمة فقط لتجاوز المقابلات مع الشركات البرمجية ، فأنت مخطأ تماما من المثال أعلاه ، يمكننا تقديم سببين لتعلم هياكل البيانات والخوارزميات >
١- إذا كنت تريد تجاوز المقابلات والدخول في الشركات والوظائف
٢- إذا كنت تحب حل المشاكل المعقدة في العالم الحقيقي
هل تعلم أن جميع أوامر SQL و Linux عبارة عن خوارزميات وهياكل بيانات؟
قد لا تدرك ذلك ، ولكن هذه هي الطريقة التي يعمل بها البرنامج تلعب هياكل البيانات والخوارزميات دورًا رئيسيًا في تنفيذ البرامج وفي عملية التوظيف أيضًا لدى الكثير من الطلاب والمهنيين والسؤال هو >
لماذا تركز مقابلات هذه الشركات على الأسئلة حول هياكل البيانات والخوارزميات ؟
عندما تطلب من شخص اتخاذ قرار بشأن شيء ما ، سيتمكن الشخص الجيد من إخبارك "اخترت أن أفعل ( أ ) لأنه أفضل من ( ب ) في حياتنا اليومية ، نذهب دائمًا مع هذا الشخص الذي يمكنه إكمال المهمة في فترة قصيرة
بكفاءة وباستخدام موارد أقل نفس الأشياء تحدث مع هذه الشركات المشكلة التي تواجهها هذه الشركات أصعب بكثير وعلى نطاق أوسع بكثير يتعين على مطوري البرامج أيضًا اتخاذ القرارات الصحيحة عندما يتعلق الأمر بحل مشاكل هذه الشركات.
إن معرفة هياكل البيانات مثل Hash Tables ، Trees ، Tries المختلفة ، تقطع شوطًا طويلاً في حل هذه المشكلات بكفاءة ويهتم القائمون بالمقابلات أكثر بمعرفة كيفية استخدام المرشحين لهذه الأدوات لحل مشكلة ما تمامًا مثلما يحتاج ميكانيكي السيارات إلى الأداة المناسبة لإصلاح السيارة وتشغيلها
بشكل صحيح ، يحتاج المبرمج إلى الأداة الصحيحة (الخوارزمية وهيكل البيانات) لجعل البرنامج يعمل بشكل صحيح لذلك يريد القائم بإجراء المقابلة العثور على مرشح يمكنه تطبيق المجموعة الصحيحة من الأدوات لحل المشكلة المحددة
مثال:
افترض أنك تعمل في شركة Facebook لقد توصلت إلى حل أمثل لمشكلة ( مثل فرز قائمة مستخدمين من الهند ) الآن ربما تكون قد حصلت تلك الشركات علي توظيف مطور ذكي يمكنه اتخاذ القرار الصحيح وتوفير موارد الشركة والوقت والمال لذا قبل إعطاء الحل لمشكلة معينة ،
يجب عليك التفكر في المقياس الكبير وجميع سيناريوهات الحالة بعناية لأنه من الممكن أن تنمي إيرادات الشركة أو يمكن أن تخسر الشركة مبلغًا ضخمًا من المال.
بعض المشاكل المعقدة في العالم الحقيقي التي تطبق مففهوم هياكل البيانات .
هل سبق أن وبخك والديك عندما لم تتمكن من العثور على كتابك أو ملابسك في غرفتك ؟ بالتأكيد نعم ... يكون والداك على حق عندما يقدمان النصيحة للحفاظ على كل شيء في المكان المناسب ، تضع الملابس في دولاب الملابس ،
وتضع الكتب في المكتبة ، حتى تتمكن في المرة القادمة من الحصول على أغراضك بسهولة هنا تحتاج إلى ترتيب كل شيء كذلك الحال في ( البيانات ) والاحتفاظ بها في هيكل بيانات مناسب لها كلما احتجت إلى البحث عن شيء ما ، تحصل عليه بسهولة وبأسرع وقت ممكن
يعطي هذا المثال السابق فكرة واضحة عن مدى أهمية ترتيب البيانات أو هيكلتها في الحياة الواقعية.
الآن خذ مثال المكتبة
إذا كنت بحاجة إلى العثور على كتاب حول Set Theory من مكتبة ، فستنتقل إلى قسم الرياضيات أولاً ، ثم قسم Set Theory إذا لم يتم تنظيم هذه الكتب بهذه الطريقة وتم توزيعها بشكل عشوائي ، فسيكون من المحبط العثور على كتاب معين
تشير هياكل البيانات إلى الطريقة التي ننظم بها المعلومات على جهاز الكمبيوتر الخاص بنا ، علماء الكمبيوتر يبحثون عن أفضل طريقة لتنظيم البيانات التي لدينا ، بحيث يمكن معالجتها بشكل أفضل بناءً على المدخلات المقدمة.
لدى الكثير من المبرمجين المبتدئين هذا السؤال
لماذا نستخدم جميع عناصر بنية البيانات والخوارزمية في حياتنا اليومية وكيف تكون مفيدة في حل مشكلة معقدة في العالم الحقيقي ؟
نحتاج أن نذكر أنه سواء كنت مهتمًا بالانضمام إلى أكبر شركات التكنولوجيا العملاقة أم لا ، فإن هياكل البيانات لاتزال تساعدنا كثيرًا في حياتك اليومية ألا تصدقنا ... دعونا ننظر في بعض الأمثلة ...
فيس بوك ( التطبيق المفضل لديك ) هل يمكنك أن تتخيل أن أصدقاءك على Facebook وأصدقاء الأصدقاء والأصدقاء المشتركين يمكن تمثيلهم جميعًا بسهولة بواسطة هيكل بيانات Graph ؟ استرخ ... اجلس لبضع لحظات وفكر مرة أخرى ... يمكنك تطبيق الرسم البياني لتمثيل اتصال الأصدقاء على facebook.
إذا كنت بحاجة إلى الاحتفاظ بمجموعة أوراق اللعب وترتيبها بشكل صحيح ، فكيف ستفعل ذلك؟ سوف ترميها بشكل عشوائي أو ستقوم بترتيب البطاقات واحدة فوق الأخرى ومن مجموعة مناسبة يمكنك استخدام هيكل Stack هنا لعمل ترتيب مناسب للبطاقات واحدة على الأخرى.
إذا كنت بحاجة إلى البحث عن كلمة في القاموس ، فما هو نهجك؟ هل تذهب وتفتح صفحة بصفحة أو تفتح بعض الصفحات وإذا لم يتم العثور على الكلمة ، فتفتح صفحة أخري لاحقا بناءً على ترتيب الكلمة في الصفحة الحالية هذه هي (Binary Search) خوارزمية البحث الثنائي التي تجد موضع القيمة المستهدفة
الفائدة
المثالان الأولان كانا مثالاً جيدًا لاختيار بنية البيانات الصحيحة لمشكلة في العالم الحقيقي ، والثالث مثال جيد لاختيار الخوارزمية الصحيحة لحل مشكلة معينة في وقت أقل ، تمنحك جميع الأمثلة المذكورة أعلاه فهمًا واضحًا لمدى أهمية تنظيم البيانات في حياتنا اليومية ،
يعد ترتيب البيانات في بنية معينة مفيدًا حقًا في توفير الكثير من الوقت ويصبح من السهل معالجتها أو استخدامها ، الشيء نفسه ينطبق على الخوارزمية كلنا نريد توفير وقتنا وطاقتنا ومواردنا
نريد جميعًا اختيار أفضل طريقة لحل المشكلات في حياتنا اليومية توجد الكثير من المشكلات في العالم والتي قد تستغرق ساعات أو أيامًا لحلها باستخدام الحل الأصلي ، وقد يستغرق الأمر أيضًا سنوات! هل يمكنك أن تتخيل! شاهد هذا الفيديو :
youtube.com
نحن محاطون بالكثير من مشاكل العالم الحقيقي المعقدة التي لا يوجد حل لها راقب المشكلات بعمق ويمكنك مساعدة هذا العالم في تقديم الحل الذي لم يقدمه أحد من قبل.
والآن جاء الدور لنتعرف علي معني هياكل البيانات التي ذكرناها بالأعلي .
Array data structure
المصفوفة هي تركيبة من البيانات يتم إنشائها بشكل برمجي في الحاسوب، يمكنها تخزين العديد من العناصر من نفس النوع و كل عنصر يحمل قيمة
Linked List
القائمة المرتبطة هي مجموعة خطية من عناصر البيانات التي لا يتم توفير ترتيبها من خلال وضعها الفعلي في الذاكرة.
Stack
يعرف المكدس أو Stack بأنه بنية معطيات مجردة أو مجموعة يمكن فيها القيام بعمليات محددة على العناصر وهي إضافة عنصر جديد إلى المجموعة
يعرّف Queues
وينطق في علوم الحاسب بأنه بنية معطيات مجردة مكونة من مجموعة تحتوي على عدد من العناصر التي يتم الحفاظ على ترتيبها وفق قانون محدد، تسمح هذه المجموعة للمستخدم بإجراء مجموعة من العمليات على العناصر بما فيها إضافة عنصر جديد إلى مؤخرة
Sorting
التصنيف هو أي عملية لترتيب العناصر في بعض التسلسلات و/أو المجموعات المختلفة
Tree
في علم الحاسوب, الشجرة هي هيكل بيانات واسع الاستخدام يحاكي شكل شجرة هرمية مع مجموعة من الرؤوس المرتبطة
Graph
تمثيل الدالة البياني (Graph of a function)
تساعد بنية البيانات والخوارزميات في فهم طبيعة المشكلة على مستوى أعمق وبالتالي فهم أفضل للعالم.
إذا كنت تريد معرفة المزيد عن لماذا هياكل البيانات والخوارزميات ، فيجب عليك مشاهدة هذا الفيديو للسيد سانديب جين (الرئيس التنفيذي والمؤسس لموقع ، GeeksforGeeks)
youtube.com
للقراءة علي الموقع
pglovers.com

جاري تحميل الاقتراحات...