
本文共 2848 字,大约阅读时间需要 9 分钟。
���������������Hill Sort���������
���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������C������������������������������������������
������������
#includevoid hillSort(int array[], int n) { int d; // ������ int i, j, k, l; d = n / 2; // ������������ while (d >= 1) { // ��������������������� for (i = 0; i < n; i += d) { // ��������������������������������������������������������� for (j = i + d; j < n; j += d) { if (array[j] < array[k]) { // ������������ array[k] = array[j]; for (l = j; l > k; l -= d) { array[l] = array[l - d]; } } } } d /= 2; }}int main() { int array[10] = {69, 56, 12, 136, 3, 55, 46, 99, 88, 25}; int n = 10; hillSort(array, n); for (int i = 0; i < n; i++) { printf("%d ", array[i]); } printf("\n"); return 0;}
������������
���������������void hillSort(int array[], int n)
��������������������������������������������� array
������������������������������ n
���
���������������int d = n / 2;
������������ d
���������������������������������������������
������������while (d >= 1)
��������������������������������� d
������������������ d=1
���
���������������for (i = 0; i < n; i += d)
��������������������������������������� d
������������������������������������
������������������for (j = i + d; j < n; j += d)
������������������������������������������������������������������������������������������
������������������if (array[j] < array[k])
������������������������������������������������������������
������������������������������for (l = j; l > k; l -= d)
������������������������������������������������������������������������
���������������d /= 2;
��������������������������������������������� d=1
������������������
���������������main
���������������������������������������������������������������������
������������������
������������������������69, 56, 12, 136, 3, 55, 46, 99, 88, 25
��������� n=10
���
������������ d=5
���
- ���������
0-4
,5-9
��� - ������������������������
0-4
��������������������� - ���������������������
5-9
������55
���25
���99
���88
���������������
��������������� d=2
���
- ���������
0,2,4
���1,3,5,6,7,8,9
��� - ���������������������������������������������������
��������������������� d=1
���������������������������������������������
������������
������������������������12, 25, 46, 55, 56, 69, 88, 99, 136
���
������
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
发表评论
最新留言
关于作者
