/// <summary> /// Быстрая сортировка - нерекурсивная реализация со вспомогательной сортировкой вставками /// </summary> public static void QuickSortStackedInsertion(List <Item> data, int l, int r) { Stack <int> s = new Stack <int>(); s.Push(r); s.Push(l); int M = 9; while (s.Count != 0) { l = s.Pop(); r = s.Pop(); if (r - 1 < M) { continue; } int i = Partition(data, l, r); if (i - 1 < r - i && r > l) { s.Push(i - 1); s.Push(l); s.Push(r); s.Push(i + 1); } else if (r > l) { s.Push(r); s.Push(i + 1); s.Push(i - 1); s.Push(l); } } Insertion.InsertionSortLv3(data, l, r); }