Сортировка Шелла

  1. public void sort(int[] source) {
  2.     int dist = source.length/2 - 1;
  3.     boolean run = true;
  4.     while (run) {
  5.         run = false ;
  6.         for (int i = 0; i < source.length - dist; i++) {
  7.             if (source [i] > source [i + dist]) {
  8.                 int local = source[i];
  9.                 source[i] = source[i + dist];
  10.                 source[i + dist] = local;
  11.                 run = true;
  12.                 if (dist > 1) dist--;
  13.             }
  14.         }
  15.     }
  16. }
Пример реализации сортировки Шелла. Вы так же можете превратить метод в метод пузырьковой сортировки убрав все изменения переменной dist и заменив её на 1

Реклама

Мы в соцсетях

tw tg yt gt