希尔排序

Posted predator-wang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了希尔排序相关的知识,希望对你有一定的参考价值。

 

#include <iostream>
#include <stdio.h>

using namespace std;

int g_szArray[] = { 7, 3, 5, 8, 9, 1, 2, 4, 6 };

void main()
{
    int nLen = sizeof(g_szArray) / sizeof(g_szArray[0]);
    int nStep = nLen / 2;
    while (nStep >= 1)
    {
        for (int i = 0; i < nLen; i++)
        {
            if (i + nStep > nLen - 1)
            {
                break;
            }

            if (g_szArray[i] > g_szArray[i + nStep])
            {
                g_szArray[i] = g_szArray[i] + g_szArray[i + nStep];
                g_szArray[i + nStep] = g_szArray[i] - g_szArray[i + nStep];
                g_szArray[i] = g_szArray[i] - g_szArray[i + nStep];
            }
        }

        nStep = nStep / 2;
    }

    for (int i = 0; i < nLen; i++)
    {
        printf("%d ", g_szArray[i]);
    }
    printf("
");
    system("pause");
}

 

以上是关于希尔排序的主要内容,如果未能解决你的问题,请参考以下文章

希尔排序

插入排序(直接插入排序折半插入排序希尔排序的算法思想及代码实现)

希尔排序图解与代码

算法-java代码实现希尔排序

希尔排序JAVA代码

《算法》笔记 3 - 选择排序插入排序希尔排序