Bubble Алгоритм сортування в Java: програма сортування масивів і приклад
Що таке Bubble Сортувати?
BubblСортування — це простий алгоритм, який порівнює перший елемент масиву з наступним. Якщо поточний елемент масиву чисельно більший за наступний, елементи міняються місцями. Подібним чином алгоритм обійде весь елемент масиву.
В цьому підручник, ми створимо програму JAVA для реалізації Bubble Сортування. Перевірте вихідний код, який допоможе вам зрозуміти логіку програми.
Java Програма для перевірки числа Армстронга
package com.guru99;
public class BubbleSort {
public static void main(String[] args)
{
int arr[] ={860,8,200,9};
System.out.println("---Array BEFORE Bubble Sort---");
printArray(arr);
bubbleSort(arr);//sorting array elements using bubble sort
System.out.println("---Array AFTER Bubble Sort---");
printArray(arr);
}
static void bubbleSort(int[] array)
{
int n = array.length;
int temp = 0;
for(int i=0; i < n; i++) // Looping through the array length
{ System.out.println("Sort Pass Number "+(i+1));
for(int j=1; j < (n-i); j++)
{
System.out.println("Comparing "+ array[j-1]+ " and " + array[j]);
if(array[j-1] > array[j])
{
//swap elements
temp = array[j-1];
array[j-1] = array[j];
array[j] = temp;
System.out.println(array[j] + " is greater than " + array[j-1]);
System.out.println("Swapping Elements: New Array After Swap");
printArray(array);
}
}
}
}
static void printArray(int[] array){
for(int i=0; i < array.length; i++)
{
System.out.print(array[i] + " ");
}
System.out.println();
}
}
вихід:
860 8 200 9 Sort Pass Number 1 Comparing 860 and 8 860 is greater than 8 Swapping Elements: New Array After Swap 8 860 200 9 Comparing 860 and 200 860 is greater than 200 Swapping Elements: New Array After Swap 8 200 860 9 Comparing 860 and 9 860 is greater than 9 Swapping Elements: New Array After Swap 8 200 9 860 Sort Pass Number 2 Comparing 8 and 200 Comparing 200 and 9 200 is greater than 9 Swapping Elements: New Array After Swap 8 9 200 860 Sort Pass Number 3 Comparing 8 and 9 Sort Pass Number 4 ---Array AFTER Bubble Sort--- 8 9 200 860
