اذهب إلى المحتوى
  • 0

ما الفرق بين دالة sort في Python وخوارزميات Bubble Sort وSelection Sort؟

Ali Ahmed6

السؤال

السلام عليكم

اي الفرق بين الدله sort الموجود فيه باثيون و بين خورزميات bubble sort او selection sort ؟

وانا كامبرمج استخدم اي ؟

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

الدالة sort تستخدم خوارزميات فعالة للفرز تعتمد على الأداء، مثل Timsort.

و Timsort هي خوارزمية مركبة تجمع بين خصائص خوارزميات الفرز الدمجي (Merge Sort) والفرز الإدراجي (Insertion Sort)، مما يجعلها فعالة في معالجة مجموعات البيانات المختلفة.

بالمقابل، خوارزميات الفرز مثل Bubble Sort وSelection Sort تعتبر أبسط ولكنها أقل فعالية من حيث الأداء، خاصة عند التعامل مع مجموعات بيانات كبيرة.

لذا، عندما تحتاج إلى فرز مجموعة صغيرة من البيانات أو عامل الوقت (الأداء) أمرًا ثانويًا، بإمكانك استخدام أيِ من Bubble Sort أو Selection Sort.

ولكن في معظم الحالات، يُفضل استخدام الدالة sort في Python التي تستند إلى Timsort، خاصةً عند التعامل مع مجموعات بيانات كبيرة.

حيث تشترك خوارزميات bubble sort و selection sort في نفس تعقيد الوقت في أسوأ الحالات، وهو O(n^2)، مما يعني أن عدد العمليات التي يتعين القيام بها لفرز المصفوفة يتناسب مع مربع حجم المصفوفة.

بينما، تتمتع الدالة sort بأداء أفضل بكثير، حيث تعتمد على خوارزمية أكثر تعقيدًا، ولكنها أكثر فعالية، وتعقيد الوقت في أسوأ الحالات للدالة sort هو O(n log n)، أي أن عدد العمليات التي يتعين القيام بها لفرز المصفوفة يتناسب مع حاصل ضرب حجم المصفوفة وسجل حجم المصفوفة.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 3 دقائق مضت قال Mustafa Suleiman:

الدالة sort تستخدم خوارزميات فعالة للفرز تعتمد على الأداء، مثل Timsort.

و Timsort هي خوارزمية مركبة تجمع بين خصائص خوارزميات الفرز الدمجي (Merge Sort) والفرز الإدراجي (Insertion Sort)، مما يجعلها فعالة في معالجة مجموعات البيانات المختلفة.

بالمقابل، خوارزميات الفرز مثل Bubble Sort وSelection Sort تعتبر أبسط ولكنها أقل فعالية من حيث الأداء، خاصة عند التعامل مع مجموعات بيانات كبيرة.

لذا، عندما تحتاج إلى فرز مجموعة صغيرة من البيانات أو عامل الوقت (الأداء) أمرًا ثانويًا، بإمكانك استخدام أيِ من Bubble Sort أو Selection Sort.

ولكن في معظم الحالات، يُفضل استخدام الدالة sort في Python التي تستند إلى Timsort، خاصةً عند التعامل مع مجموعات بيانات كبيرة.

حيث تشترك خوارزميات bubble sort و selection sort في نفس تعقيد الوقت في أسوأ الحالات، وهو O(n^2)، مما يعني أن عدد العمليات التي يتعين القيام بها لفرز المصفوفة يتناسب مع مربع حجم المصفوفة.

بينما، تتمتع الدالة sort بأداء أفضل بكثير، حيث تعتمد على خوارزمية أكثر تعقيدًا، ولكنها أكثر فعالية، وتعقيد الوقت في أسوأ الحالات للدالة sort هو O(n log n)، أي أن عدد العمليات التي يتعين القيام بها لفرز المصفوفة يتناسب مع حاصل ضرب حجم المصفوفة وسجل حجم المصفوفة.

تمام , الله ينور عليك

بس سوال يعني هو انا ممكن اتعلم خورزميات Timsort ؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 7 ساعة قال Ali Ahmed6:

السلام عليكم

اي الفرق بين الدله sort الموجود فيه باثيون و بين خورزميات bubble sort او selection sort ؟

وانا كامبرمج استخدم اي ؟

وعليكم السلام ورحمة الله،
بالنسبة للتابع sort المعرف في لغة بايثون تستطيع استخدامه بكل راحة حيث يقوم فريق بايثون ببناء التوابع المعرفة ضمن اللغة بأقل زمن تعقيد هذا يعني أن sort معرف  في اللغة في تعقيد زمني n logn وهذا افضل من زمن الخوارزميتان الموجودين في سؤالك، انت ستقوم باستخدام هذا التابع الجاهز sort أو sorted ولكن من المهم دراسة خوارزميات الترتيب وكيف تقوم بتحسين عملية الترتيب لأنك من الممكن أن تقوم باستخدام الباترنز التي تعتمد عليها هذه الخوارزميات في حل مشكلة اخرى وهذا سوف يحدث معك مرارا وتكرارا

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

وعليكم السلام، أهلا بك صديقي.
في البداية، الفرق بين خوارزميات ال bubble sort وال selection sort بشكل عام ليس بكبير، حيث أن الخوازرميتان تستخدمان لغايات تعليمية في الغالب، وكلاهما يملكان درجة تعقيد من الرتبة O^2، أي أنهما غير مناسبتان أبدا لترتيب بيانات ضخمة، وليستا فعالتان في التطبيقات العملية مثل غيرهما من الخوارزميات.
أما ال sort التي تستخدم في python وغيرهها من اللغات، فهي في الحقيقة خوارزمية TrimSort الهجينة من عدة خوارزميات ترتيب أخرى، وهي رغم صعوبة فهمها، فهي أكثر كفاءة وسرعة من الخوارزميتين السابقتين ومرنة لترتيب البيانات الضخمة والصغيرة، لذلك هي مرشحة للاستخدام في التطبيقات العملية لسرعتها وكفاءتها.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

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

دالة sort في Python هي خوارزمية مركبة، مما يعني أنها تتكون من خوارزميات أخرى. في حالة دالة sort في Python، فإنها تستخدم خوارزميات الفرز الدمجي والفرز الإدراجي.

تمتلك خوارزميات الفرز الدمجي وقت تشغيل خطي في المتوسط، مما يعني أنها أسرع بكثير من Bubble Sort وSelection Sort في معظم الحالات. و تمتلك خوارزميات الفرز الإدراجي وقت تشغيل خطي في المتوسط، ولا تتطلب مساحة تخزين إضافية. ومع ذلك، فهي أقل فعالية من خوارزميات الفرز الدمجي في معظم الحالات. لذلك دالة sort في Python تختار خوارزمية الفرز المناسبة بناءً على حجم المصفوفة.

بالنسبة للمصفوفات الصغيرة، تستخدم دالة sort خوارزمية الفرز الإدراجي. و بالنسبة للمصفوفات الكبيرة، تستخدم دالة sort خوارزمية الفرز الدمجي.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...