Предмет: Другие предметы, автор: Alt0l

Помогите с заданием по язику c# сделать нужно в windows forms в Visual Studio, нужно сделать сортування одномерного массива методом Шелла, вот скрин кода сортування вибором но мне нужно ево переделать на сортування методом Шелла и главное шоб рабочее било

Приложения:

Ответы

Автор ответа: prefch4
0

Для сортировки одномерного массива методом Шелла в C# можно использовать следующий код: 

public static void ShellSort(int[] arr)

{

int n = arr.Length;

int gap = n / 2;

while (gap > 0)

{

for (int i = gap; i < n; i++)

{

int temp = arr[i];

int j = i;

while (j >= gap && arr[j - gap] > temp)

{

arr[j] = arr[j - gap];

j -= gap;

}

arr[j] = temp;

}

gap /= 2;

}

}

Этот код сортирует массив arr методом Шелла. В отличие от сортировки выбором, метод Шелла использует последовательность промежутков, которые сначала большие, а затем постепенно уменьшаются до 1, что позволяет ускорить сортировку.

Чтобы использовать этот код в вашем приложении Windows Forms в Visual Studio, вам нужно создать новый метод в вашем классе формы и вызвать его из обработчика события кнопки. Например, вы можете создать метод ShellSortArray:

private void ShellSortArray(int[] arr)

{

int n = arr.Length;

int gap = n / 2;

while (gap > 0)

{

for (int i = gap; i < n; i++)

{

int temp = arr[i];

int j = i;

while (j >= gap && arr[j - gap] > temp)

{

arr[j] = arr[j - gap];

j -= gap;

}

arr[j] = temp;

}

gap /= 2;

}

}

Похожие вопросы
Предмет: Физика, автор: kamirer
Предмет: История, автор: alexxx1105
1) Ахейська палацова цивілізація існувала протягом:
а) VI-II ст. до н.е. б) II-I ст. до н.е.
в) III-II ст. до н.е. г) III-I ст. до н.е.

2) . Троянська війна тривала:
а) 10 років б) 3 роки
в) 8 років. г) 12 років

3) Принципат з’явився у:
а) Римській республіці б) античних полісах
в) імперії часів Октавіана Августа г) Елліністичній Греції

4) В якому році було засновано місто Рим:
а) 653 р. до н. е. б) 787 р. до н. е. в) 753 р. до н. е. г) 467 р. до н. е.

Рівень ІІ
5) Заповнити таблицю:
Друга Пунічна війна
Подія Дата
_____________ 218 р до н.е.
Битва при Каннах _______
______________ 214-212рр. до н.е.
Завершення війни _______

6) Дати визначення:
Форум –
Олімпійські ігри –

Рівень ІІІ
7) Установіть відповідність між поняттями та визначеннями:
1) провінція; А) поселення засноване на чужій території;
2) патрицій; Б) посадовець, якого обирали плебеї;
3) трибун; В) корінний житель Риму, представник знатного роду;
4) колонія; Г) переможена країна, що увійшла до складу імперії.

Рівень IV
8) Дайте власну оцінку діяльності Юлія Цезаря.