7. Write a Java program to create an interface Sortable with a method sort() that sorts an array of integers in ascending order. Create two classes BubbleSort and SelectionSort that implement the Sortable interface and provide their own implementations of the sort() method.
💡Code:
interface Sortable { void sort(int[] arr); } class BubbleSort implements Sortable { @Override public void sort(int[] arr) { int n = arr.length; boolean swapped; for (int i = 0; i < n - 1; i++) { swapped = false; for (int j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) { // Swap arr[j] and arr[j+1] int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; swapped = true; } } // If no two elements were swapped in inner loop, the array is already sorted if (!swapped) { break; } } } } class SelectionSort implements Sortable { @Override public void sort(int[] arr) { int n = arr.length; for (int i = 0; i < n - 1; i++) { int minIndex = i; for (int j = i + 1; j < n; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; } } // Swap the found minimum element with the first element int temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } } } public class SortExample { public static void main(String[] args) { int[] arr = {64, 34, 25, 12, 22, 11, 90}; Sortable bubbleSort = new BubbleSort(); bubbleSort.sort(arr); System.out.println("Sorted using Bubble Sort: " + java.util.Arrays.toString(arr)); int[] arr2 = {64, 34, 25, 12, 22, 11, 90}; Sortable selectionSort = new SelectionSort(); selectionSort.sort(arr2); System.out.println("Sorted using Selection Sort: " + java.util.Arrays.toString(arr2)); } }
📸Output :
