Реализовать сортировки пузырьком, Шелла и быструю - C (СИ)
Формулировка задачи:
Нужно реализовать сортировки пузырьком, Шелла и быструю. Есть наброски. Программа прекращает работу после введения чисел.
#include <stdio.h>
void bubble(int *items, int count)
{
int i, j;
int t;
for(i = 1; i < count; ++i)
for( j = count-1; j >= i; --j) {
if(items[j - 1] > items[ j ]) {
t = items[j - 1];
items[j - 1] = items[ j ];
items[ j ] = t;
}
}
}
void shell(int *items, int count)
{
int i, j, gap, k;
int x, a[5];
a[0]=8; a[1]=5; a[2]=3; a[3]=2; a[4]=1;
for(k=0; k < 5; k++) {
gap = a[k];
for(i=gap; i < count; ++i) {
x = items[i];
for(j=i-gap; (x < items[j]) && (j >= 0); j=j-gap){
items[j+gap] = items[j];
}
items[j+gap] = x;
}
}
}
void quickSort(int *items, int left, int right)
{
int i, j;
int x, y;
i = left;
j = right;
x = items[(left+right)/2];
do {
while((items[i] < x) && (i < right))
i++;
while((x < items[j]) && (j > left))
j--;
if(i <= j) {
y = items[i];
items[i] = items[j];
items[j] = y;
i++; j--;
}
} while(i <= j);
if(i < right)
quickSort(items, i, right);
if(left < j)
quickSort(items, left, j);
}
void quickSortMain(int *items, int count)
{
quickSort(items, 0, count-1);
}
int main(void)
{
const int N = 5;
int s[5];
int p[5];
int r[5];
printf("Enter a masiv:");
scanf("%i", s[N]);
bubble(s, N);
printf("The sorted bubble is: %s.\n", s[N]);
printf("Enter a masiv:");
scanf("%i", p[N]);
shell(p, N);
printf("The sorted shell is: %s.\n", p[N]);
printf("Enter a masiv:");
scanf("%i", r[N]);
quickSortMain(r, N);
printf("The sorted string quick is: %s.\n", r[N]);
return 0;
}Решение задачи: «Реализовать сортировки пузырьком, Шелла и быструю»
textual
Листинг программы
const int N = 5;
int s[5];
scanf("%i", s[N]);
Объяснение кода листинга программы
- В начале кода объявляется константа N равная 5, которая представляет собой количество элементов в массиве s.
- Затем объявляется массив s типа int с размером N.
- Далее происходит чтение N-1 элементов массива s с помощью функции scanf, где пользователь вводит значения этих элементов.
- Последний элемент массива s инициализируется значением N.
- Код не содержит реализации сортировки пузырьком, Шелла и быстрой, поэтому дальнейшие действия зависят от того, что делает программа после этого.