Упражнения C: сортировка чисел методом быстрой сортировки
Алгоритм поиска и сортировки при программировании на C: упражнение 12 с решением
Напишите программу на C, которая сортирует числа, используя метод быстрой сортировки.
Примечание. Согласно Википедии «Быстрая сортировка - это сортировка сравнения, это означает, что она может сортировать элементы любого типа, для которых определено отношение« меньше »(формально, общий порядок). Неэффективные реализации это не стабильная сортировка, Это означает, что относительный порядок элементов одинаковой сортировки не сохраняется. Быстрая сортировка может работать на месте в массиве, требуя небольших дополнительных объемов памяти для выполнения сортировки. "
Пример решения:
Образец кода C:
// https://bit.ly/2rcvXK5
#include <stdio.h>
void shell_sort (int *a, int n) {
int h, i, j, t;
for (h = n; h /= 2;) {
for (i = h; i < n; i++) {
t = a[i];
for (j = i; j >= h && t < a[j - h]; j -= h) {
a[j] = a[j - h];
}
a[j] = t;
}
}
}
int main (int ac, char **av) {
int a[] = {4, 65, 2, -31, 0, 99, 2, 83, 782, 1};
int n = sizeof a / sizeof a[0];
int i;
printf("Original Array:\n");
for (i = 0; i < n; i++)
printf("%d%s", a[i], i == n - 1 ? "\n" : " ");
shell_sort(a, n);
printf("\nSorted Array:\n");
for (i = 0; i < n; i++)
printf("%d%s", a[i], i == n - 1 ? "\n" : " ");
return 0;
}
Пример вывода:
Оригинальный массив: 4 65 2 -31 0 99 2 83 782 1 Сортированный массив: -31 0 1 2 2 4 65 83 99 782
Блок - схема:
Редактор кода программирования C:
Улучшите этот пример решения и опубликуйте свой код через Disqus.
Предыдущий: Напишите программу на C, которая сортирует числа, используя метод сортировки оболочки.
Далее: Напишите программу на C, которая сортирует числа, используя метод сортировки по бисеру.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования