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

Ethicist 28 апреля 2018

Сортировка Шелла (англ.Shell sort) — алгоритм сортировки, являющийся усовершенствованным вариантом сортировки вставками. Идея метода Шелла состоит в сравнении элементов, стоящих не только рядом, но и на определённом расстоянии друг от друга. Иными словами — это сортировка вставками с предварительными «грубыми» проходами. Аналогичный метод усовершенствования пузырьковой сортировки называется сортировка расчёской.

public void sort(int[] source) {
  int dist = source.length/2 - 1;
  boolean run = true;
  while (run) {
    run = false ;
    for (int i = 0; i < source.length - dist; i++) {
      if (source [i] > source [i + dist]) {
        int local = source[i];
        source[i] = source[i + dist];
        source[i + dist] = local;
        run = true;
        if (dist > 1) dist--;
      }
    }
  }
}

Смотрите также: