排序和查找(C++)

1. 快速排序:

class Solution {
public:
    void qs(vector& a, int left, int right) {
        if(left>=right) return;
        int target=a[left], temp, i=left, j=right;
        
        while(i             while(a[j]>=target && i             while(a[i]<=target && i             
            temp=a[j];
            a[j]=a[i];
            a[i]=temp;
        }
        
        a[left]=a[i];
        a[i]=target;
        qs(a, left, i-1);
        qs(a, i+1, right);
    }
    
    void sortColors(vector& nums) {
        qs(nums, 0, nums.size()-1);
    }
};

 

2. 归并排序:

 

3. 二分查找:

你可能感兴趣的:(数据结构与算法,C++)