/**
* Program InsertionSort
*
* @author (Zidan al Azizi)
* @NRP (5025201014)
* @version (4/5/2021)
*/
public class InsertionSort {
public static void insertionSortAscending(int arr[]) {
for (int j = 1; j < arr.length; j++) {
int key = arr[j]; int i = j-1;
while ( (i > -1) && ( arr[i] > key ) ) {
arr[i+1] = arr[i]; i--;
}
arr[i+1] = key;
}
}
public static void insertionSortDescending(int arr[]) {
for (int j = 1; j < arr.length; j++) {
int key = arr[j]; int i = j-1;
while ( (i > -1) && ( arr[i] < key ) ) {
arr[i+1] = arr[i]; i--;
}
arr[i+1] = key;
}
}
static void printArray(int arr[]) {
int len = arr.length;
//simple for loop to print the elements of sorted array
for (int i= 0; i<len; i++){
System.out.print(arr[i] + " " );
}
System.out.println();
}
public static void main(String args[]){
int[] arr1 = {21,18,15,23,52,12,61};
System.out.println("Array before insertion sort:");
printArray(arr1);
System.out.println("Array After insertion sort Ascending:");
insertionSortAscending(arr1);
printArray(arr1);
System.out.println("Array After insertion sort Descending:");
insertionSortDescending(arr1);
printArray(arr1);
}
}