شرح الترتيب بالعد في بايثون counting sort

output
canvas
info

شرح الترتيب بالعد في بايثون counting sort

شرح خوارزمية الترتيب بالعد في بايثون counting sort

كيف تعمل خوارزمية الترتيب بالعد counting sort؟

تعمل خوارزمية الترتيب بالعد counting sort من خلال انشاء قائمة جديدة يكون عدد عناصرها يساوي قيمة اكبر عنصر في المصفوفة المراد ترتيبها ، ثم عد العناصر وتخزين عددهم في القائمة الجديدة بحيث يكون عدد كل عنصر علي نفس رقم الفهرس المساوي له، وبعد ذلك اعادة كتابة المصفوفة الاصلية.

تحليل الكود الموجود في محرر بايثون بالاعلي

متغير m يحتوي علي قيمة اكبر عنصر في المصفوفة mylist مع اضافة 1 وهذا لان الفهرس يبدا من رقم صفر الي 7.

ومتغير count سوف يحتوي علي قائمة مكونة من 8 عناصر قيمتهم صفر.

[0, 0, 0, 0, 0, 0, 0, 0]

سوف تستخدم القائمة السابقة لعد كل رقم داخل فهرسة اذا كان العنصر قيمتة صفر سوف يتم زيادة قيمة فهرس صفر بمقدار رقم واحد ( 1 ) ، واذا كان قيمة العنصر هي 5 يتم زيادة قيمة فهرس 5 بمقدار واحد ( 1 ).

مثال

اذا كانت المصفوفة المراد ترتيبها كالتالي

[1, 2, 7, 3, 2, 1, 4, 2, 3, 2, 1]

سوف تكون قيمة متغير count بعد عد عدد العناصر كالتالي

[0, 3, 4, 2, 1, 0, 0, 1]

كما تشاهد تم عد الارقام وتخزين عددها كل منها علي رقم فهرسه، وبما ان المصفوفة mylist لا تحتوي علي اي رقم صفر لم تتغير قيمة الفهرس 0 في count ، وتم اضافة رقم 3 في الفهرس 1 ؛ لان رقم واحد تكرر ثلاث مرات في المصفوفة mylist.

اعادة كتابة المصفوفة mylist

بعد ان تم عد كل عناصر المصفوفة وتخزين اعدادهم ياتي دور اعادة كتابة المصفوفة مع ترتيبها.

في البداية يتم التعريف عن متغير i بقيمة 0 وسوف يستخدم للفهرسة.

بعد ذلك تستخدم حلقة تكرار فرعية في نطاق متغير m من 0 الي 8 وهي عدد عناصر القائمة count، وتمتلك الحلقة متغير التكرار a والذي سوف نستخدمة في شكل قيمة، وفهرس.

for a in range(m):

وفي حلقة التكرار الفرعية سوف يكون التكرار في نطاق قيمة قيمة فهرس a في القائمة count ، وفي اول تكرار في الحلقة الرئيسية سوف تكون قيمة a تساوي 0 وقيمة فهرس 0 في count هي 0.

for c in range(count[a]):
  arr[i] = a
  i += 1

لاحظ ان النطاق range يجب ان يكون من 0 الي 1 علي الاقل، وبما ان اول تكرار a يساوي 0 فان الحلقة الفرعية في اول تكرار لن تعمل، ولن يتم اضافة الصفر الي القائمة الجديدة mylist.

وهذا ما سوف يحدث مع كل القيم الصفرية في count ، غير ذلك سوف يتم اضافة قيمة a الي الفهرس i في المصفوفة arr وزيادة i بمقدار واحد 1.

بعد الانتهاء من كل حلقات التكرار يتم ارجاع المصفوفة arr المرتبة.

الي هنا نكون قد شرحنا الترتيب بالعد counting sort اذا كان لديك اي استفسار او ملاحظة لا تتردد في مراسلتنا.

بواسطة : admin
رابط مباشر https://www.brmgha.com/ide?embd=kPE7wupgdUr

تضمين في موقع الكتروني

التعليقات

no comments found.
  • من خلال الضغط علي زر {;} في شريط الادوات يمكنك اضافة اكواد بايثون الي التعليق للتجربة اون لاين.
  • برجاء مراعاة قواعد الكتابة، والادب.

اكواد بايثون جاهزة

بحث
رسم بورترية python turtle

رسم بورترية python turtle

كود رسم دائرة بايثون turtle

رسم نجمة خماسية بايثون turtle

Python Turtle Online Shaheed Minar

رسم قلب python turtle

Python Turtle Online Fractal Art Tree Of Life

Python Turtle Online Play Sierpinski's Game

Python Turtle Online draw koch snowflakes by click window

Python Turtle Online Draws a Koch snowflake fractal

Python Turtle Online Draw Sierpinski Square

Python Turtle Online Sierpinski Triangle fractal

Python Turtle Online Nonuniform Fractal Tree Drawer

Python Turtle Online Fractal Tree Drawer

Python Turtle Online Drawing Mona Lisa

Python Turtle Online Ulam Spiral

Python Turtle Online Draw Polygons

Python Turtle Online Draw decorative graphics

Python Turtle Online Draw Tree branches

Python Turtle Online Draw Snakes

اون لاين بايثون, اون لاين كومبايلر, بايثون اون لاين كومبايلر, كومبايلر اون لاين, باثون اون لاين, برنامج بايثون اون لاين, محرر نصوص اون لاين, كومبايلر اونلاين, محرر أكواد بايثون اون لاين, بايثون كومبايلر, بايثون اون لاين, محرر اكواد اون لاين, بايثون اونلاين, محرر بايثون اون لاين, mtplotlib