إصدارات الفقاعات في Java - فرز صفيف من الأعداد الصحيحة
خوارزمية فرز الفقاعات هي إحدى الخوارزميات الكلاسيكية التي تستخدم لشرح الفرز أثناء الفصول الجامعية. كما أنها تستخدم في تمارين C أو C ++ بفضل بساطتها. غالبا ما تسمع عن كيفية كتابة برنامج يقوم بفرز مصفوفة باستخدام خوارزمية فرز الفقاعات لفرز صفيف من الأعداد الصحيحة بترتيب تصاعدي أو تنازلي.
في خوارزمية فرز الفقاعات ، يبدأ فرز مصفوفة غير مرتبة بالعنصر الأول ويقارنها بالعنصر المجاور وإذا كان أكبر ، يتم تبادلها. من خلال القيام بذلك ، نحصل على أكبر رقم في النهاية بعد التكرار الأول. لذلك بالنسبة لنمط n< / span> ، تحتاج إلى n-1< / span> التكرارات ونمط n-1< / span> مقارنات بالحد الأقصى ويتم تنفيذها في تعقيد يساوي O(n²).< / span > مما يجعله أقل قابلية للاستخدام عند الفرز على جدول يحتوي على عدد كبير جدا من العناصر. في هذه الحالة ، تصبح أبطأ وأثقل خوارزمية فرز ، والتي تصنفها بين خوارزميات الفرز السيئة. دعنا نلقي نظرة خطوة بخطوة في هذا المثال لفرز مصفوفة باستخدام فرز الفقاعات ، كما قلنا بعد كل خطوة يتم فرز أكبر رقم.
< / a>< / div>تنفيذ فرز الفقاعات في Java< / h2> إليك برنامج Java يقوم بتنفيذ خوارزمية فرز الفقاعات.
في خوارزمية فرز الفقاعات ، يبدأ فرز مصفوفة غير مرتبة بالعنصر الأول ويقارنها بالعنصر المجاور وإذا كان أكبر ، يتم تبادلها. من خلال القيام بذلك ، نحصل على أكبر رقم في النهاية بعد التكرار الأول. لذلك بالنسبة لنمط n< / span> ، تحتاج إلى n-1< / span> التكرارات ونمط n-1< / span> مقارنات بالحد الأقصى ويتم تنفيذها في تعقيد يساوي O(n²).< / span > مما يجعله أقل قابلية للاستخدام عند الفرز على جدول يحتوي على عدد كبير جدا من العناصر. في هذه الحالة ، تصبح أبطأ وأثقل خوارزمية فرز ، والتي تصنفها بين خوارزميات الفرز السيئة. دعنا نلقي نظرة خطوة بخطوة في هذا المثال لفرز مصفوفة باستخدام فرز الفقاعات ، كما قلنا بعد كل خطوة يتم فرز أكبر رقم.

تنفيذ فرز الفقاعات في Java< / h2> إليك برنامج Java يقوم بتنفيذ خوارزمية فرز الفقاعات.
public class tri_a_bulles_array{
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
int t [] = {99 ، 45 ، 68 ، 18 ، 34 ، 26 ، 50 ، 8 ، 55 ، 10} ؛
System.out.print ("قبل الفرز") ؛
ل (int n: T)
System.out.print (n +" ");
t = tri_a_bulles (T) ؛
System.out.print("\nبعد الفرز");
ل (int n: T)
System.out.print (n +" ");
}
int ثابت [] tri_a_bulles (int T [])
{
int temp;
for (int i = T.length-1 ؛ i> = 1 ؛ i--)
{
for (int j = 0 ؛ j< أنا; j++)
if(T[j] > T[d+1])
{
temp = T[d+1];
T[j+1]=T[j];
T [j] = temp;
}
}
إرجاع T ؛
}
}
< / pre>دعونا نرى كيف يبدو هذا البرنامج:
< pre class = "prettyprint lang-java" > قبل الفرز 99 45 68 18 34 26 50 8 55 10
بعد الفرز 8 10 18 26 34 45 50 55 68 99
يمكنك الذهاب إلى أبعد من ذلك لمعرفة طرق الفرز جافا محددة مسبقا <فئة href = "http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html" الهدف = "_blank">java.util.Arrays< / a>< / span >< / span>< / a> وهي Arrays.sort () < / a> و Collections.sort ()< / a>.
المراجع:
برنامج Java لفرز الفقاعة< / a>
خوارزمية فرز الفقاعات في Java مع مثال< / a>< / div>
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
int t [] = {99 ، 45 ، 68 ، 18 ، 34 ، 26 ، 50 ، 8 ، 55 ، 10} ؛
System.out.print ("قبل الفرز") ؛
ل (int n: T)
System.out.print (n +" ");
t = tri_a_bulles (T) ؛
System.out.print("\nبعد الفرز");
ل (int n: T)
System.out.print (n +" ");
}
int ثابت [] tri_a_bulles (int T [])
{
int temp;
for (int i = T.length-1 ؛ i> = 1 ؛ i--)
{
for (int j = 0 ؛ j< أنا; j++)
if(T[j] > T[d+1])
{
temp = T[d+1];
T[j+1]=T[j];
T [j] = temp;
}
}
إرجاع T ؛
}
}
< / pre>دعونا نرى كيف يبدو هذا البرنامج:
< pre class = "prettyprint lang-java" > قبل الفرز 99 45 68 18 34 26 50 8 55 10
بعد الفرز 8 10 18 26 34 45 50 55 68 99