public bool Sort <_TyParam>(custom_compare <_TyParam> comparer, _TyParam param)
    {
        if (size <= 1)
        {
            return(false);
        }
        bool changed = true;
        bool bSort   = false;

        while (changed)
        {
            changed = false;

            for (int i = 1; i < size; ++i)
            {
                if (comparer(buffer[i - 1], buffer[i], param) > 0)
                {
                    T temp = buffer[i];
                    buffer[i]     = buffer[i - 1];
                    buffer[i - 1] = temp;
                    changed       = true;
                    bSort         = true;
                }
            }
        }
        return(bSort);
    }
示例#2
0
    public bool Sort <_TyParam>(custom_compare <_TyParam> comparer, _TyParam param)
    {
        if (m_nLeng <= 1)
        {
            return(false);
        }
        bool changed = true;
        bool bSort   = false;

        while (changed)
        {
            changed = false;

            for (int i = 1; i < m_nLeng; ++i)
            {
                if (comparer(m_pData[i - 1], m_pData[i], param) > 0)
                {
                    _Ty temp = m_pData[i];
                    m_pData[i]     = m_pData[i - 1];
                    m_pData[i - 1] = temp;
                    changed        = true;
                    bSort          = true;
                }
            }
        }
        return(bSort);
    }