Skip to main content

Selection Sort in JAVA

What is selection sort?

It is a sorting technique that is based on the partitioning of array into two parts, sorted and unsorted.

The process is:-

1) Find minimum element in unsorted array.
2) Swap the element at the end of sorted array.

when i=0 we don't have any sorted array so element will be replaced from first element later the sorted array end will growas the index.

Steps:-


underline elements are sorted array, the length is increasing with each minimum element added at the end.

minimum element11
 11 25 12 22 64 
minimum element12
 11 12 25 22 64 
minimum element22
 11 12 22 25 64 
minimum element25
 11 12 22 25 64 
minimum element64
 11 12 22 25 64 

Program:-


package sorting;

public class SelectionSort {

 //function to print array
  public static void print(int[] arr)
  {
   for(int i=0;i<=arr.length-1;i++)
    System.out.print(" "+arr[i]);
   System.out.println(" ");
  }
  
  //function to swap elements
  public static int[] swap(int[] arr,int i, int j)
  {
   int temp;
   temp=arr[i];
   arr[i]=arr[j];
   arr[j]=temp;
   
   return arr;
  }
 
  //program to find minimum element in unsorted array( i to end)
  public static int min(int[] arr,int i)
  {
   int min=i;
   for(;i<=arr.length-1;i++)
   {
    if(arr[i]<arr[min])
    {
     min=i;
    }
   }
   System.out.println("minimum element"+arr[min]);
   return min;
   
  }
  
  public static void main(String[] args)
  {
   int[] arr={64,25,12,22,11};
   int min;
   for(int i=0;i<=arr.length-1;i++)
   {
    //find minimum element in unsorted array ( i to end)
    min=min(arr,i);
    //swap minimum element with then end of sorted array(i)
    swap(arr,min,i);
    //print the array
    print(arr);
   
   }
   
   
   
  }
  
  
  
}

Comments

.

Popular posts from this blog

Basics of System Design

This article is first one from the series of articles dedicated to system design interviews. Here i am going to present the base scenario to consider before starting to solve system design problems. Questions to ask? 1) what is the number of requests a website will recieve in a day/month/second? 2) what is the amount of memory a website will deal in a day/month/second? 3) what is the number of servers that can accomodate these requests? To answer this , first we need to remember the below numbers:- 1 million = 10 lakh = 1000000 = 10^6 1 billion = 1000 million = 10^9 1 KB = 1024 B = 10^3 1 MB= 10^6 = 1024 KB 1 GB= 10^9 = 1024 MB 1 TB = 10^12 = 1024 GB Memory we need to see in Bytes Requests we need to see in numbers example :- suppose a website recieves 100M requests every month then:- requests per day = request per month /24 = 416700 requests requests per second = requests per day / (24*360...

Delete node at a given position in Linked List

Delete node at a given position in Linked List //delete node by position in linked list public Node deleteKeyAtPosition ( Node head , int position ) { Node temp = head ; Node prevtemp = temp ; int c = 1 ; //if position is head if ( position == 1 ) { head = head . next ; return head ; } //position +1 because we have to go till that point while ( c != position + 1 ) { if ( c == position && position != 1 ) { prevtemp . next = temp . next ; temp . next = null ; temp = prevtemp ; } prevtemp = temp ; temp = temp . next ; c ++; } return head ; }