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

TWO SUM -LEET CODE PROBLEM 1

   https://leetcode.com/problems/two-sum/ Given an array of integers  nums  and an integer  target , return  indices of the two numbers such that they add up to  target . You may assume that each input would have  exactly  one solution , and you may not use the  same  element twice. You can return the answer in any order.   Example 1: Input: nums = [2,7,11,15], target = 9 Output: [0,1] Output: Because nums[0] + nums[1] == 9, we return [0, 1]. Example 2: Input: nums = [3,2,4], target = 6 Output: [1,2] Example 3: Input: nums = [3,3], target = 6 Output: [0,1] class Solution {     public int[] twoSum(int[] nums, int target) {              HashMap<Integer,Integer> map=new HashMap<Integer,Integer>();                  for(int i=0;i<nums.length;i++){                          if(map.get(nums[i])==null){                 map.put(target-nums[i],i);             }             else{                 return new int[]{map.get(nums[i]),i};             }         }         return null

DECODE WAYS - LEETCODE PROBLEM 91

  A message containing letters from   A-Z   is being encoded to numbers using the following mapping: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 Given a  non-empty  string containing only digits, determine the total number of ways to decode it. Example 1: Input: "12" Output: 2 Explanation:  It could be decoded as "AB" (1 2) or "L" (12). Example 2: Input: "226" Output: 3 Explanation:  It could be decoded as "BZ" (2 26), "VF" (22 6), or "BBF" (2 2 6). class Solution { public int numDecodings(String s) { int ways=0; ways=countDecoding(s.toCharArray(),s.length()); return ways; } int countDecoding(char[] digits, int n){ // System.out.println(" digits "+disgits[0]); // for base condition "01123" should return 0 // base cases if (n == 0 || (n == 1 && digits[0]!='