关闭

Quick sort implementation (Introduction to Algorithms)

425人阅读 评论(0) 收藏 举报

int myqsort_partition(int *A, int p, int r)
{
    int pivot = A[r];
    int store_idx = p;
    for(int idx = p; idx <= r; ++idx)
    {
        if(A[idx] < pivot)
        {
            std::swap(A[store_idx], A[idx]);
            store_idx++;
        }
    }
    std::swap(A[store_idx], A[r]);
    return store_idx;
}

void myqsort(int *A, int p, int r)
{
    if(p < r)
    {
        int q = myqsort_partition(A, p, r);
        myqsort(A, p, q-1);
        myqsort(A, q+1, r);
    }
}

 

 

.....

.....

.....

 

        int A[] = {3, 2, 1, 4, 76, 9, 34, 3, 8};
        int cnt = sizeof(A)/sizeof(A[0]);
        copy(A, A+cnt, ostream_iterator<int>(cout, ","));
        cout << endl;
        myqsort(A, 0, cnt-1);
        copy(A, A+cnt, ostream_iterator<int>(cout, ","));
        cout << endl;

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:305592次
    • 积分:5431
    • 等级:
    • 排名:第5122名
    • 原创:238篇
    • 转载:27篇
    • 译文:0篇
    • 评论:8条
    文章分类
    最新评论