кодесурса

Упражнения на Java: алгоритм сортировки оболочки

script1adsense2code
script1adsense3code

Алгоритм сортировки Java: упражнение 16 с решением

Напишите Java-программу для сортировки массива заданных целых чисел Алгоритм сортировки оболочки.

Согласно Википедии «Сортировка оболочки или метод Shell является сортировкой сравнения на месте. Это можно рассматривать как обобщение сортировки по обмену (пузырьковая сортировка) или сортировку по вставке (вставка сортировки). Метод начинается с сортировки пар элементы находятся далеко друг от друга, а затем постепенно сокращается разрыв между сравниваемыми элементами. Начиная с далеко расположенных элементов, можно перемещать некоторые неуместные элементы в положение быстрее, чем простой обмен ближайшими соседями ».


Пример решения:

Java-код:

import java.util.Arrays;
public class ShellSort {   
    public static void shell(int[] a) {
	int increment = a.length / 2;
	while (increment > 0) {
		for (int i = increment; i < a.length; i++) {
			int j = i;
			int temp = a[i];
			while (j >= increment && a[j - increment] > temp) {
				a[j] = a[j - increment];
				j = j - increment;
			}
			a[j] = temp;
		}
		if (increment == 2) {
			increment = 1;
		} else {
			increment *= (5.0 / 11);
		}
	}
    }
	// Method to test above
    public static void main(String args[])
    {
        ShellSort ob = new ShellSort();
        int nums[] = {7, -5, 3, 2, 1, 0, 45};
        System.out.println("Original Array:");
        System.out.println(Arrays.toString(nums));
        ob.shell(nums);
        System.out.println("Sorted Array:");
        System.out.println(Arrays.toString(nums));
        }        
}

Пример вывода:

 Оригинальный массив:
[7, -5, 3, 2, 1, 0, 45]
Сортированный массив:
[-5, 0, 1, 2, 3, 7, 45]

Блок - схема:

«Блок-схема:

Редактор кода Java:

Внесите свой код и комментарии через Disqus.

Предыдущая: Написать Java-программу для сортировки массива заданных целых чисел с использованием алгоритма сортировки перестановок.
Далее: Напишите программу на Java для сортировки массива заданных неотрицательных целых чисел с использованием алгоритма сортировки сна.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code