InsertionSort Algorithm in Java
Code:
package sort;
public class InsertionSort {
public static void main(String[] args) {
int[] arr = {3,7,4,9,5,2,6,1};
for(int i=1;i<arr.length;i++){
int currentValue=arr[i];
int previousIndex=i-1;
int insertions=0;
while(previousIndex>=0 && (arr[previousIndex]>currentValue)){ //if previous is greater than current
arr[previousIndex+1]=arr[previousIndex]; //swap it , assign greater to current location 7
previousIndex=previousIndex-1; // drives the loop
System.out.println("previousIndex:"+previousIndex);
insertions++;
}
System.out.println("CurrentValue["+currentValue+"] insertions:["+insertions+"]");
arr[previousIndex+1]=currentValue; //assign the current(smaller value) to previous position 4
printArray(arr);
System.out.println();
}
}
private static void printArray(int[] arr){ //utility function to print array
for(int i=0;i<arr.length;i++){
System.out.print(" "+arr[i]);
}
System.out.println();
}
}
package sort;
public class InsertionSort {
public static void main(String[] args) {
int[] arr = {3,7,4,9,5,2,6,1};
for(int i=1;i<arr.length;i++){
int currentValue=arr[i];
int previousIndex=i-1;
int insertions=0;
while(previousIndex>=0 && (arr[previousIndex]>currentValue)){ //if previous is greater than current
arr[previousIndex+1]=arr[previousIndex]; //swap it , assign greater to current location 7
previousIndex=previousIndex-1; // drives the loop
System.out.println("previousIndex:"+previousIndex);
insertions++;
}
System.out.println("CurrentValue["+currentValue+"] insertions:["+insertions+"]");
arr[previousIndex+1]=currentValue; //assign the current(smaller value) to previous position 4
printArray(arr);
System.out.println();
}
}
private static void printArray(int[] arr){ //utility function to print array
for(int i=0;i<arr.length;i++){
System.out.print(" "+arr[i]);
}
System.out.println();
}
}
Comments
Post a Comment