zoukankan      html  css  js  c++  java
  • 快速排序

    void QuickSort(int nLow, int nHigh)
    {
        int s = nLow;
        int e = nHigh;
        int nPivot = nLow;
    
        if (s >= e)
        {
            return;
        }
    
        while (1)
        {
            while (g_szArray[nLow] <= g_szArray[nPivot] && nLow <= e)
            {
                nLow++;
            }
    
            while (g_szArray[nHigh] > g_szArray[nPivot] && nHigh >= s)
            {
                nHigh--;
            }
    
            if (nLow > nHigh)
            {
                break;
            }
            else
            {
                g_szArray[nLow] = g_szArray[nLow] + g_szArray[nHigh];
                g_szArray[nHigh] = g_szArray[nLow] - g_szArray[nHigh];
                g_szArray[nLow] = g_szArray[nLow] - g_szArray[nHigh];
                nLow++;
                nHigh--;
            }
        }
        /*g_szArray[nHigh] = g_szArray[nPivot] + g_szArray[nHigh];
        g_szArray[nPivot] = g_szArray[nHigh] - g_szArray[nPivot];
        g_szArray[nHigh] = g_szArray[nHigh] - g_szArray[nPivot];*/
    
        int nTmp = g_szArray[nHigh];
        g_szArray[nHigh] = g_szArray[nPivot];
        g_szArray[nPivot] = nTmp;
        QuickSort(nLow, e);
        QuickSort(s, nLow - 1);
    }
    
    void main()
    {
        int nLen = sizeof(g_szArray) / sizeof(g_szArray[0]);
        QuickSort(0, nLen - 1);
    
        for (int i = 0; i < nLen; i++)
        {
            printf("%d ", g_szArray[i]);
        }
        printf("
    ");
        system("pause");
    }
  • 相关阅读:
    【SDOI2014】数表
    【洛谷P4735】最大异或和
    FFT学习笔记
    【SHOI2008】堵塞的交通
    HDU 1754 I Hate It 线段树
    hdu 1166 敌兵布阵 ( 线段树或者树状数组)
    hdu 5339 Untitled dfs
    The mook jong
    hdu 5363 Key Set 快速幂
    HDU 1983 Kaitou Kid
  • 原文地址:https://www.cnblogs.com/predator-wang/p/11925654.html
Copyright © 2011-2022 走看看