Вставка сортировки — это простой алгоритм сортировки, подходящий для небольших наборов данных. Во время каждой итерации алгоритм
- Удаляет элемент из массива
- Сравнивает его с наибольшим значением в массиве
- Перемещает элемент в правильное местоположение.
Вот как процесс работает графически
JAVA-программа для сортировки массива с использованием алгоритма сортировки вставками.
- package com.guru99;
- public class InsertionSortExample {
- public static void main(String a[])
- {
- int[] myArray = {860,8,200,9};
- System.out.println("Before Insertion Sort");
- printArray(myArray);
- insertionSort(myArray);//sorting array using insertion sort
- System.out.println("After Insertion Sort");
- printArray(myArray);
- }
- public static void insertionSort(int arr[])
- {
- int n = arr.length;
- for (int i = 1; i < n; i++)
- { System.out.println("Sort Pass Number "+(i));
- int key = arr[i];
- int j = i-1;
- while ( (j > -1) && ( arr [j] > key ) )
- {
- System.out.println("Comparing "+ key + " and " + arr [j]);
- arr [j+1] = arr [j];
- j--;
- }
- arr[j+1] = key;
- System.out.println("Swapping Elements: New Array After Swap");
- printArray(arr);
- }
- }
- static void printArray(int[] array){
- for(int i=0; i < array.length; i++)
- {
- System.out.print(array[i] + " ");
- }
- System.out.println();
- }
- }
Вывод кода:
Before Insertion Sort 860 8 200 9 Sort Pass Number 1 Comparing 8 and 860 Swapping Elements: New Array After Swap 8 860 200 9 Sort Pass Number 2 Comparing 200 and 860 Swapping Elements: New Array After Swap 8 200 860 9 Sort Pass Number 3 Comparing 9 and 860 Comparing 9 and 200 Swapping Elements: New Array After Swap 8 9 200 860 After Insertion Sort 8 9 200 860