Write a program to implement insertion sort algorithm in java. How insertion sort is different from bubble sort and selection sort.
Insertion sort is a simple sorting algorithm. It works by inserting each element at the proper place in a sorted list.
Insertion sort explanation.
Java programs
Output -
Enter the number of element in an array : 4
Enter unsorted values in an array :
12
5
9
2
After sorting an array :
2 5 9 12
Explanation
Suppose we have input following values.
12 5 9 2
Step 1 - 12 is compared with 5 and position is swapped.
After step 1 - 5 12 9 2
Step 2 - 9 is compared with 5 and 12 and position is swapped.
After step 2 - 5 9 12 2
Step 3 - 2 is compared with 5, 9 and 12 and position is swapped.
After step 3 - 2 5 9 12
You can also create separate method for insertion sort and sort the unsorted array. Here is the code snippet for sorting.
Insertion sort is a simple sorting algorithm. It works by inserting each element at the proper place in a sorted list.
Insertion sort explanation.
Java programs
Insertion Sort Program in Java
package insertionsort;
import java.util.*;
public class Insertionsort {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int n;
System.out.println("Enter the number of element in an array");
Scanner in = new Scanner(System.in);
n = in.nextInt();
int[] arr = new int[n];
System.out.println("Enter unsorted values in an array");
int i, j ,k;
/* Taking unsorted values from user */
for (i = 0 ; i < n; i++) {
arr[i] = in.nextInt();
}
/* Sorting values using insertion sort */
for ( i = 1; i < n; i++) {
k = arr[i];
for (j = i - 1; j >= 0 && k < arr[j]; j-- ) {
arr[j+1] = arr[j];
}
arr[j+1] = k;
}
System.out.println ("After sorting an array");
for (j = 0; j < n; j++) {
System.out.print(arr[j]+" ");
}
}
}
Output -
Enter the number of element in an array : 4
Enter unsorted values in an array :
12
5
9
2
After sorting an array :
2 5 9 12
Explanation
Suppose we have input following values.
12 5 9 2
Step 1 - 12 is compared with 5 and position is swapped.
After step 1 - 5 12 9 2
Step 2 - 9 is compared with 5 and 12 and position is swapped.
After step 2 - 5 9 12 2
Step 3 - 2 is compared with 5, 9 and 12 and position is swapped.
After step 3 - 2 5 9 12
You can also create separate method for insertion sort and sort the unsorted array. Here is the code snippet for sorting.
public static void insertionSort(int[] A){
for(int i = 1; i < A.length; i++) {
int value = A[i];
int j = i - 1;
while(j >= 0 && A[j] > value){
A[j + 1] = A[j];
j = j - 1;
}
A[j + 1] = value;
}
/* Assume this is the method which prints
the final sorted array */
printArray(A);
}
No comments:
Post a Comment