#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void ShellSort(int* array, int size)
{
int gap = 3;
while (gap > 0)
{
for (int i = gap; i < size; ++i)
{
int key = array[i];
int end = i - gap;
while (end >= 0 && key < array[end])
{
array[end + gap] = array[end];
end -= gap;
}
array[end + gap] = key;
}
gap -= 1;
}
}
void PrintArray(int* array, int size)
{
for (int i = 1; i < size; ++i)
printf("%d “, array[i]);
printf(”\n");
}
int main()
{
int array[10] = { 5, 2, 3, 1, 6, 4, 7, 9, 8, 0 };
ShellSort(array, sizeof(array) / sizeof(array[0]));
PrintArray(array, sizeof(array) / sizeof(array[0]));
system(“pause”);
return 0;
}
希尔排序(ShellSort)
最新推荐文章于 2022-05-09 00:01:30 发布