diff --git a/希尔算法.cpp b/希尔算法.cpp new file mode 100644 index 0000000..1afb384 --- /dev/null +++ b/希尔算法.cpp @@ -0,0 +1,66 @@ +#include + +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����֮ǰ�����\n"); + +for (int i = 0; i < 5; i++) + +printf("%5d", a[i]); + +printf("\n"); + + +ShellSort(a, 5); + + +printf("\n����֮�������\n"); + +for (int i = 0; i < 5; i++) + +printf("%5d", a[i]); + +printf("\n\n"); + + +return 0; + +} +