2011-4-15 快排算法,堆排算法

    技术2022-05-20  57

    一下是我写的快排的源码,欢迎指正:

     

    template<typename value_type>

    int get_pivot_index(value_type * array, int start, int end) 

    {

    value_type pivot = array[start];

     

    while (start < end)

    {

    while( (start<end) && (array[end]>pivot) ) 

    --end;

     

    array[start] = array[end];

     

    while( (start<end) && (array[start]<pivot) )

    ++start;

     

    array[end] = array[start];

    }

     

    // Now start == end !

    array[start] = pivot;

    return start;

    }

     

     

    template <typename value_type>

    void quick_sort(value_type *array, const int &start, const int &end) {

    assert(NULL != array);

    if (start >= end)

    {

    return;

    }

    int pivot_index = get_pivot_index(array, start, end);

     

    quick_sort(array, start, pivot_index-1);

    quick_sort(array, pivot_index+1, end);

    }

     

     

    节目预告,明天出堆排的代码。呵呵。


    最新回复(0)