В этом примере мы обсудим алгоритм сортировки Comb Sort на C#
Гребенчатая сортировка-это алгоритм сортировки, и это вариант пузырьковой сортировки, гребенчатая сортировка увеличивает зазор, используемый в сравнениях и обменах.
Сортировка гребнем улучшает сортировку пузырьковой.
Основная идея состоит в том, чтобы исключить замедления или небольшие значения в конце списка, так как в пузырьковой сортировке они сильно замедляют сортировку.
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
