|
|
|
|
@ -0,0 +1,66 @@
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
|
|
void ShellSort(int *arr, int size)
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
int i, j, tmp, increment;
|
|
|
|
|
|
|
|
|
|
for (increment = size / 2; increment > 0; increment /= 2)
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
for (i = increment; i < size; i++)
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
tmp = arr[i];
|
|
|
|
|
|
|
|
|
|
for (j = i - increment; j >= 0 && tmp < arr[j]; j -= increment)
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
arr[j + increment] = arr[j];
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
arr[j + increment] = tmp;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int main(int argc, char* argv[])
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
int a[5] = { 43, 56, 78, 23, 43 };
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
printf("\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 5; i++)
|
|
|
|
|
|
|
|
|
|
printf("%5d", a[i]);
|
|
|
|
|
|
|
|
|
|
printf("\n");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ShellSort(a, 5);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
printf("\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 5; i++)
|
|
|
|
|
|
|
|
|
|
printf("%5d", a[i]);
|
|
|
|
|
|
|
|
|
|
printf("\n\n");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|