- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

# Java Program for ShellSort

Shell sort is a sorting technique that is similar to insertion sort, wherein elements are sorted which are at far ends (either ends) of the array. This way, the interval size between the next and the second to last element reduces. This happens for all the elements in the array until the interval distance is reduced to 0.

## Example

Following is an example for ShellSort in Java −

public class Demo { int shell_sort(int my_arr[]) { int arr_len = my_arr.length; for (int gap = arr_len / 2; gap > 0; gap /= 2) { for (int i = gap; i < arr_len; i += 1) { int temp = my_arr[i]; int j; for (j = i; j >= gap && my_arr[j - gap] > temp; j -= gap) my_arr[j] = my_arr[j - gap]; my_arr[j] = temp; } } return 0; } public static void main(String args[]) { int my_arr[] = { 12, 34, 54, 2, 3 }; Demo my_instance = new Demo(); my_instance.shell_sort(my_arr); System.out.println("The array, after performing shell sort is : "); int arr_len = my_arr.length; for (int i = 0; i < arr_len; ++i) System.out.print(my_arr[i] + " "); System.out.println(); } }

## Output

The array, after performing shell sort is : 2 3 12 34 54

## Explanation

This algorithm sorts the elements that are far apart from each other, thereby reducing the interval between those two elements. It can be understood as being a generalized version of insertion sort. Elements at specific intervals in an array are sorted first, their interval distance reduces, thereby sorting all elements in the process.

When the first loop is iterated, the size of the array is taken and elements between size/2 are compared and swapped if they are not sorted. The same thing is repeated for all other elements. The elements are sorted by defining a temporary variable, and swapping the elements.

In the second loop iteration, size/4 elements are compared and sorted. The same process goes on for the remaining elements, thereby sorting them. In the main function, the array is defined, and ‘shell_sort’ function is called by passing this array as a parameter.

- Related Questions & Answers
- Java program for String Concatenation.
- Java Program for Cocktail Sort
- Java Program for Counting Sort
- Java Program for Comb Sort
- Java Program for Bitonic Sort
- Java Program for array rotation
- Java Program for Gnome Sort
- Java Program for Stooge Sort
- Java Program for Pancake sorting
- Java Program for Radix Sort
- Java Program for Pigeonhole Sort
- Java Program for Reversal algorithm for array rotation
- Java Program for Binary Insertion Sort
- Java Program for Anagram Substring Search
- Java Program for Binary Search (Recursive)