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