排序总结

1、分治法排序

/**************************************************************
                    分治法排序;
    Description:    Sort order for all or part of an Array. 
    Parameters:
        _in int a[]: array for sorting
        _in int m: Start index of a[]
        _in int n:    End index of a[]
**************************************************************/
void divide_sort(int a[], int m, int n)
{
    if (m >= n)
    {
        return;
    }
    int i = m;
    int j = n;
    while(i < j)
    {
        if (a[i+1] <= a[i] )
        {
            int tmp = a[i];
            a[i] = a[i+1];
            a[i+1] = tmp;
            i++;
        } 
        else
        {
            int tmp = a[i+1];
            a[i+1] = a[j];
            a[j] = tmp;
            j--;
        }
    }
    divide_sort(a, m, i-1);
    divide_sort(a, i+1, n);
}
分治法排序;

 应用示例:

void main()
{
    int arry[10] = {3, 7, 2, 9, 6, 13, 1, 0, 8, 6};
    divide_sort(arry, 0, 9);   
    return;
}
void main()

 

posted on 2014-04-28 12:42  Dr.C  阅读(115)  评论(0)    收藏  举报