美文网首页
quicksort(双指针版本)

quicksort(双指针版本)

作者: BinaryWoodB | 来源:发表于2017-09-24 17:18 被阅读0次

quicksort有两个版本。左右指针版本(如下)和Hoare版本(较易但复杂度略输)。
以下代码由松松提供。致谢~

#include <iostream>
#include <vector>
using namespace std;

template <class T>
int divide(vector<T>& a, int low, int high) {
    T k = a[low];
    do {
        while (low < high && a[high] >= k) high--;
        if (low < high) {
            a[low] = a[high];
            low++;
        }
        while (low < high && a[low] <= k) low++;
        if (low < high) {
            a[high] = a[low];
            high--;
        }
    } while (low != high);
    a[low] = k;
    return low;
}

template <class T>
void quickSort(vector<T>& a, int low, int high) {
    int mid;
    if (low >= high) {
        return ;
    }
    mid = divide(a, low, high);
    quickSort(a, low, mid-1);
    quickSort(a, mid+1, high);
}

template <class T>
void quickSort(vector<T>& a) {
    quickSort(a, 0, a.size()-1);
}

int main()
{
    vector<int> arr({1, 8, 2, 1, 7, 5, 3, 3, 2});
    for (int i = 0; i < arr.size(); i++) cout<<arr[i]<<' '; cout<<endl;
    quickSort(arr);
    for (int i = 0; i < arr.size(); i++) cout<<arr[i]<<' '; cout<<endl;

    return 0;
}

相关文章

  • quicksort(双指针版本)

    quicksort有两个版本。左右指针版本(如下)和Hoare版本(较易但复杂度略输)。以下代码由松松提供。致谢~

  • ZXAlgorithm - C7 Two Pointers

    Outline相向双指针同向双指针 Two SumPartitionSort 0 Templete 同向双指针,相...

  • 双指针:15.三数之和

    考点:双指针 使用双指针搜索之前排序 动态循环双指针m,n

  • 2020-06-28

    针对209 长度最小的子数组 第一个版本,前缀和,加上双指针。 version 2随着指针挪动,更新前缀和,max...

  • Python算法-双指针(Two Pointers)

    双指针分为「对撞指针」、「快慢指针」、「分离双指针」。 参考来源:https://algo.itcharge.cn...

  • 双指针法(Swift代码篇)

    双指针法有三种: 左右指针法(头尾指针法) 快慢指针法 滑动窗口 左右指针法 左右指针法是最常见的双指针法,左右两...

  • 双指针

    双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。双指针可以从不同的方向向中间逼近也可以朝着同一个...

  • 双指针

    颜色分类,最令我头疼的一个双指针问题... 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排...

  • 双指针

    一、双指针总结 1.1题目 快慢指针(主要解决链表中的问题) 141.环形链表 142.环形链表 II 876.链...

  • 双指针

    双指针问题总结 双指针经典问题 twoSum (有序数组) 字符串翻转 先看一个例子: leetcode 345....

网友评论

      本文标题:quicksort(双指针版本)

      本文链接:https://www.haomeiwen.com/subject/xiakextx.html