В этом примере мы обсудим алгоритм сортировки Comb Sort на C#
Гребенчатая сортировка-это алгоритм сортировки, и это вариант пузырьковой сортировки, гребенчатая сортировка увеличивает зазор, используемый в сравнениях и обменах.
Сортировка гребнем улучшает сортировку пузырьковой.
Основная идея состоит в том, чтобы исключить замедления или небольшие значения в конце списка, так как в пузырьковой сортировке они сильно замедляют сортировку.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CombSort { class Program { public static void CombSort(ref int[] data) { double gap = data.Length; bool swaps = true; while (gap > 1 || swaps) { gap /= 1.247330950103979; if (gap < 1) gap = 1; int i = 0; swaps = false; while (i + gap < data.Length) { int igap = i + (int)gap; if (data[i] > data[igap]) { int temp = data[i]; data[i] = data[igap]; data[igap] = temp; swaps = true; } ++i; } } } static void Main(string[] args) { int[] mass = { 2, 5, 1, 10, 6, 9, 3, 7, 4, 8 }; CombSort(ref mass); foreach(var sortMass in mass) Console.WriteLine(sortMass); Console.ReadKey(); } } } |
Вывод:
1
2
3
4
5
6
7
8
9
10