Bubble Sordi algoritm sisse Java: massiivi sortimisprogramm ja näide
Mis on Bubble Sorteerida?
Bubblsortimine on lihtne algoritm, mis võrdleb massiivi esimest elementi järgmisega. Kui massiivi praegune element on arvuliselt suurem kui järgmine, siis elemente vahetatakse. Samamoodi läbib algoritm kogu massiivi elemendi.
Selle juhendaja, loome rakendamiseks JAVA programmi Bubble Sorteeri. Kontrollige koodi väljundit, mis aitab teil mõista programmi loogikat.
Java Programm Armstrongi numbri kontrollimiseks
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(); } }
Väljund:
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