بسم الله الرحمن الرحيم
ما هو Bubble sort ؟
قائم علي المقارنة بين زوج من العناصر وترتيب مواقعهم
مثال للتوضيح :
لدينا المصفوفة التالية {7, 4, 5, 2} كيف نستطيع ترتيبها تصاعدياً بأستخدام Bubble sort
في الخطوة الأولى: مقارنة الرقم 4 مع الرقم 7، وبما أنّ 4 < 7، سيتم تبديل موقعيهما فيما بينهما، ولأن باقي العناصر أصغر من الـ 7، ستكرر العملية حتى يصبح رقم 7 في آخر المصفوفة.
الآن أصبحت المصفوفة بالشكل الآتي : {4, 5, 2, 7}
في الخطوة الثانية: مقارنة الرقم 5 مع الرقم 4 ، وبما أنّ 4 < 5، ومرتبين ترتيبًا تصاعديًا لن يتم تبديل موقعيهما. ثم مقارنة الرقم 5 مع الرقم 2، طبعًا بما أنّ 2 < 5، سيتمّ تبديل موقعيهما فيما بينهما.
الآن أصبحت المصفوفة بالشكل الآتي: {4, 2, 5, 7}
في الخطوة الثالثة: مقارنة الرقم 4 مع الرقم 2، بما أنّ 2 < 4، سيتمّ تبديل موقعيهما فيما بينهما. لتصبح المصفوفة مرتبةً تصاعديًا بالشكل التالي: {2,4,5,7}.
ما هو Bubble sort ؟
قائم علي المقارنة بين زوج من العناصر وترتيب مواقعهم
مثال للتوضيح :
لدينا المصفوفة التالية {7, 4, 5, 2} كيف نستطيع ترتيبها تصاعدياً بأستخدام Bubble sort
في الخطوة الأولى: مقارنة الرقم 4 مع الرقم 7، وبما أنّ 4 < 7، سيتم تبديل موقعيهما فيما بينهما، ولأن باقي العناصر أصغر من الـ 7، ستكرر العملية حتى يصبح رقم 7 في آخر المصفوفة.
الآن أصبحت المصفوفة بالشكل الآتي : {4, 5, 2, 7}
في الخطوة الثانية: مقارنة الرقم 5 مع الرقم 4 ، وبما أنّ 4 < 5، ومرتبين ترتيبًا تصاعديًا لن يتم تبديل موقعيهما. ثم مقارنة الرقم 5 مع الرقم 2، طبعًا بما أنّ 2 < 5، سيتمّ تبديل موقعيهما فيما بينهما.
الآن أصبحت المصفوفة بالشكل الآتي: {4, 2, 5, 7}
في الخطوة الثالثة: مقارنة الرقم 4 مع الرقم 2، بما أنّ 2 < 4، سيتمّ تبديل موقعيهما فيما بينهما. لتصبح المصفوفة مرتبةً تصاعديًا بالشكل التالي: {2,4,5,7}.
تعقيدات الوقت
Time Complexity o(n^2)
لأنه يتم المرور علي كل عنصر n عدد n من المرات
كود ال Bubble sort
java code
- public class BubbleSortExample {
- static void bubbleSort(int[] arr) {
- int n = arr.length;
- int temp = 0;
- for(int i=0; i < n; i++){
- for(int j=1; j < (n-i); j++){
- if(arr[j-1] > arr[j]){
- //swap elements
- temp = arr[j-1];
- arr[j-1] = arr[j];
- arr[j] = temp;
- }
- }
- }
- }
- public static void main(String[] args) {
- int arr[] ={3,60,35,2,45,320,5};
- System.out.println("Array Before Bubble Sort");
- for(int i=0; i < arr.length; i++){
- System.out.print(arr[i] + " ");
- }
- System.out.println();
- bubbleSort(arr);//sorting array elements using bubble sort
- System.out.println("Array After Bubble Sort");
- for(int i=0; i < arr.length; i++){
- System.out.print(arr[i] + " ");
- }
- }
- }
ليست هناك تعليقات:
إرسال تعليق