Skip to main content

Selection Sort

 1. You are given an array(arr) of integers.

2. You have to sort the given array in increasing order using selection sort.

Input Format

An Integer n 

arr1

arr2..

n integers

Output Format

Check the sample ouput and question video.


Constraints

1 <= N <= 10000

-10^9 <= arr[i] <= 10^9

Sample Input

5

-2 

3

Sample Output

Comparing -2 and 7

Comparing 4 and -2

Comparing 1 and -2

Comparing 3 and -2

Swapping 7 and -2

Comparing 4 and 7

Comparing 1 and 4

Comparing 3 and 1

Swapping 7 and 1

Comparing 7 and 4

Comparing 3 and 4

Swapping 4 and 3

Comparing 4 and 7

Swapping 7 and 4

-2

1

3

4

7



Solution:

import java.io.*;
import java.util.*;

public class Main {

  public static void selectionSort(int[] arr) {
    //write your code here
    for(int i=0;i<arr.length-1;i++){
        int idx = i;
        for(int j=i+1;j<arr.length;j++)
            if(isSmaller(arr,j,idx))
                idx = j;
        swap(arr,i,idx);
    }
  }

  // used for swapping ith and jth elements of array
  public static void swap(int[] arr, int i, int j) {
    System.out.println("Swapping " + arr[i] + " and " + arr[j]);
    int temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
  }

  // return true if ith element is smaller than jth element
  public static boolean isSmaller(int[] arr, int i, int j) {
    System.out.println("Comparing " + arr[i] + " and " + arr[j]);
    if (arr[i] < arr[j]) {
      return true;
    } else {
      return false;
    }
  }

  public static void print(int[] arr) {
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
  }

  public static void main(String[] args) throws Exception {
    Scanner scn = new Scanner(System.in);
    int n = scn.nextInt();
    int[] arr = new int[n];
    for (int i = 0; i < n; i++) {
      arr[i] = scn.nextInt();
    }
    selectionSort(arr);
    print(arr);
  }

}

Comments

Must Read:

Software Engineering Concepts Configuration Management And Version Control Post-Quiz

 Software Engineering Concepts       Configuration Management And Version Control            Post-Quiz

Number Pattern

  /* @ToDo     Number Pattern                 1                    1       2                1       2       3            1       2       3       4        1       2       3       4       5            */ #include   <iost...

RDBMS Data Definition Language | Create Sales_info table

  Write a query to create Sales_info with constraints mentioned. Refer the below schema  Result Description Summary of tests +------------------------------+ | 3 tests run / 3 test passed | +------------------------------+

Climb Stairs With Variable Jumps

 1. You are given a number n, representing the number of stairs in a staircase. 2. You are on the 0th step and are required to climb to the top. 3. You are given n numbers, where ith element's value represents - till how far from the step you       could jump to in a single move.        You can of course jump fewer number of steps in the move. 4. You are required to print the number of different paths via which you can climb to the top. Input Format A number n .. n more elements Output Format A number representing the number of ways to climb the stairs from 0 to top. Constraints 0 <= n <= 20 0 <= n1, n2, .. <= 20 Sample Input 10 3 3 0 2 1 2 4 2 0 0 Sample Output 5 Solution: import java.io.*; import java.util.*; public class Main {     public static void main(String[] args) throws Exception {         // write your code here         Scanner sc = new Scanner(System.in);   ...

Software Engineering Concepts Software Maintenance Test Your Understanding

  Software Engineering Concepts       Software Maintenance            Test Your Understanding

Count Binary Strings

1. You are given a number n. 2. You are required to print the number of binary strings of length n with no consecutive 0's. Note: In this problem, you are given a number n. All we need to print is the number of binary strings of length n with no consecutive 0's For example: Sample Input: 3 Sample Output: 5 How 5? We have a total of eight binary numbers for length 3, out of which we have 5 numbers in which there are no consecutive zeros. Input Format A number n Output Format A number representing the number of binary strings of length n with no consecutive 0's. Constraints 0 < n <= 45 Sample Input 6 Sample Output 21 Solution: import java.io.*; import java.util.*; public class Main{ public static void main(String[] args) throws Exception {     // write your code here     Scanner sc = new Scanner(System.in);     int n = sc.nextInt();          int dp[][] = new int[n+1][2];     dp[1][0] = 1;     dp[1][1] ...

RDBMS Data Definition Language | Alter - Establish Referential Integrity Constraint

RDBMS  Data Definition Language  Alter - Establish Referential Integrity Constraint Identify the common key between the customer_info and Sales_info tables and establish referential integrity constraint between them. Give the constraint name as FK_KEY. Evaluation Result: Result Description Summary of tests +------------------------------+ | 3 tests run / 3 test passed | +------------------------------+

Data Formats ( XML & JSON ) XML AND JSON | Generate XSD For Breakfast Menu

  Generate XSD For Breakfast Menu Generate XSD for the given XML document <?xml version="1.0" encoding="UTF-8"?> <breakfast_menu> <food> <name>Turfle waffles</name> <price>$5.95</price> <description>This two turfle which has 2 famous product  is with real choco and maple syrup</description> <calories>650</calories> </food> <food> <name>Strawberry Belgian Waffles</name> <price>$24.6</price> <description>Light Belgian waffles covered with strawberries and whipped cream</description> <calories>900</calories> </food> <food> <name>Berry-Berry Belgian Waffles</name> <price>$4.78</price> <description>Light Belgian waffles covered with an assortment of fresh berries and whipped cream</description> <calories>400</calories> </food> <food> <name>Fried Toast</name> <pr...

Target Sum Subsets - Dp

1. You are given a number n, representing the count of elements. 2. You are given n numbers. 3. You are given a number "tar". 4. You are required to calculate and print true or false, if there is a subset the elements of which add       up to "tar" or not. Input Format A number n n1 n2 .. n number of elements A number tar Output Format true or false as required Constraints 1 <= n <= 30 0 <= n1, n2, .. n elements <= 20 0 <= tar <= 50 Sample Input 5 4 2 7 1 3 10 Sample Output true Solution: import java.io.*; import java.util.*; public class Main {     public static void main(String[] args) throws Exception {         Scanner sc = new Scanner(System.in);         int n = sc.nextInt();         int[] arr = new int[n];         for(int i=0;i<n;i++)             arr[i] = sc.nextInt();         int tar = sc.nextInt(); ...

Subscribe to Get's Answer by Email