Java/J2EE and SOA (348 Blogs) Become a Certified Professional
AWS Global Infrastructure

Programming & Frameworks

Topics Covered
  • C Programming and Data Structures (16 Blogs)
  • Comprehensive Java Course (4 Blogs)
  • Java/J2EE and SOA (345 Blogs)
  • Spring Framework (8 Blogs)

How to Implement Insertion Sort in Java?

Published on Aug 20,2019 1.8K Views

Insertion Sort in java is a simple and efficient sorting algorithm, that creates the final sorted array one element at a time. It is usually implemented when the user has a small data set. I’ll cover the following topics:


What is Insertion Sort?

Insertion Sort in java is an efficient sorting algorithm, that creates the final sorted array one element at a time. An element from the input data is removed after every iteration. It is compared to the largest value present in the array and is then moved to the correct position. To understand the working of this sort lets take a look at this example.




Algorithm of Insertion Sort

Let’s say we have an unsorted array [6, 5, 15, 3, 9]

  • 1st index iteration: The value at the 1st index is 5, which is less than 6. The array becomes [6, 6, 15, 2, 8].

On reaching the start of the set of elements,  we place the value at the 0th index.The array now becomes: [5, 6, 15, 3, 9]

  • 2nd index iteration: The value at the 2nd index is 15,  which is greater than 6. No changes are made in the array. 

  • 3rd index iteration:  The value at the 3rd index is 3. The value is lesser than 15, thus the array becomes [5, 6, 15, 15, 9]

The value 3 is also lesser than 6, thus the array now changes to [5, 6, 6, 15, 9]

3 is smaller than 5 as well. The array is again modified to [5, 5, 6, 15, 9]

When the beginning of the array is reached, 3 is placed at the 0th index. The array is now defined as [3, 5, 6, 15, 9]

  • 4th index iteration: The value at the 4th index is 9. Following a similar algorithm, the final sorted array is : [3, 5, 6, 9, 15]


    Code for Insertion Sort in Java

    // Java program to implement Insertion Sort
    public class InsertionEx { 
    	/*Function to sort array using insertion sort*/
    	void sort(int a[]) 
    		int n = a.length; 
    		for (int i = 1; i < n; ++i) { int key = a[i]; int j = i - 1; /* Move elements of a[0..i-1], that are greater than key, to one position ahead of their current position */ while (j >= 0 && a[j] > key) { 
    				a[j + 1] = a[j]; 
    				j = j - 1; 
    			a[j + 1] = key; 
    	/* A function to print array of size n*/
    	static void displayArray(int a[]) 
    		int n = a.length; 
    		for (int i = 0; i < n; ++i) 
    			System.out.print(a[i] + " "); 
    	// Driver code 
    	public static void main(String args[]) 
    		int a[] = { 25, 28, 18, 10, 5 }; 
    		InsertionEx ob = new InsertionEx(); 



    Complexity and Boundary Cases

    • Time Complexity: The time complexity of insertion sort is O(n*2).

    • Boundary Cases: The maximum time taken by the insertion sort is when the elements are sorted in the reverse order. If the elements are already sorted, it takes minimum time

    Insertion Sort is implemented by the user when the number of elements to be sorted is less in number. It can also be used when the array specified is almost sorted i.e. only a few numbers are misplaced and not in the appropriate positions.

    With this, we come to an end of this Insertion Sort in Java article. Check out the Java training by Edureka, a trusted online learning company with a network of more than 250,000 satisfied learners spread across the globe. Edureka’s Java J2EE and SOA training and certification course is designed for students and professionals who want to be a Java Developer. The course is designed to give you a head start into Java programming and train you for both core and advanced Java concepts along with various Java frameworks like Hibernate & Spring.

    Got a question for us? Please mention it in the comments section of this “Insertion Sort in Java” blog and we will get back to you as soon as possible.

    Upcoming Batches For Java Certification Training Course
    Course NameDateDetails
    Java Certification Training Course

    Class Starts on 8th June,2024

    8th June

    SAT&SUN (Weekend Batch)
    View Details

    Join the discussion

    Browse Categories

    webinar_success Thank you for registering Join Edureka Meetup community for 100+ Free Webinars each month JOIN MEETUP GROUP

    Subscribe to our Newsletter, and get personalized recommendations.

    image not found!
    image not found!

    How to Implement Insertion Sort in Java?