### 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);

}

}

}
```

### How to design a Node in Tree?

How to design a Node in Tree?

There are three main components of a tree in a node.

1) Integer holding data.
2) Left pointer holding node in a left subtree.
3) Right pointer holding node in a right subtree.

The following design is having data of int type and left,right pointers of a node to the subtrees.

package com.BST;publicclassNode{int data; Node left; Node right;/** * @return the data */publicNode(int data){this.left=null;this.right=null;this.data=data;}publicintgetData(){return data;}/** * @param data the data to set */publicvoidsetData(int data){this.data= data;}/** * @return the left */public Node getLeft(){return left;}/** * @param left the left to set */publicvoidsetLeft(Node left){this.left= left;}/** * @return the right */public Node getRight(){return right;}/** * @param right the right to set */publicvoidsetRight(Node right){this.right= right;}/* (non-Javadoc) * @see java.lang.Object#toString() */@Overridepublic String toString(){return"Node [data=&quo…

### Heap implementation in JAVA

In this tutorial we will see all the functionalities of heaps implemented through java language.

package com.problems.heap;publicclassHeapFunctions{//Function to generate maxheapify where root is max than childspublicvoidmaxHeapify(int Arr[],int i,int N){int largest;int left =2*i+1;//left childint right =2*i +2;//right child System.out.println("left"+" "+left); System.out.println("right"+" "+right); System.out.println("Max size"+" "+N);if(left< N && Arr[left]> Arr[i]){ largest = left; System.out.println("largest left"+largest);}else{ largest = i; System.out.println("largest i"+largest);}if(right < N && Arr[right]> Arr[largest]){ largest = right; System.out.println("largest right"+largest);}if(largest != i ){ System.out.println("No largest"+largest); Arr=swap (A…