希尔排序的介绍以及例子分析
发布日期:2021-05-14 16:07:23 浏览次数:24 分类:精选文章

本文共 2848 字,大约阅读时间需要 9 分钟。

���������������Hill Sort���������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������C������������������������������������������

������������

#include 
void 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���

    ������

    ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    上一篇:VMware打开centos黑屏解决方法汇总
    下一篇:c语言的操作符和部分其他补充

    发表评论

    最新留言

    路过,博主的博客真漂亮。。
    [***.116.15.85]2025年04月11日 10时02分49秒