1.冒泡排序    时间复杂度O(n^2)   空间复杂度O(1)  稳定class Solution {public:    //冒泡排序    void BubbleSort(vector<int>& a)    {        for(int i=0;i<a.size()-1;i++)            for(int j=1;j<a.size()-i;j++)                if(a[j-1]>a[j])                    swap(a[j-1],a[j]);    }    vector<int> MySort(vector<int>& arr) {        BubbleSort(arr);        return arr;    }};2.直接选择排序    时间复杂度O(n^2)   空间复杂度O(1)  不稳定class Solution {public:    //直接选择排序    void SelectSort(vector<int>& a)    {        for(int i=0;i<a.size();i++)        {            int min=i;            for(int j=i;j<a.size();j++)                if(a[j]<a[min])                    min=j;            swap(a[i],a[min]);        }    }    vector<int> MySort(vector<int>& arr) {        SelectSort(arr);        return arr;    }};3.插入排序    时间复杂度O(n^2)   空间复杂度O(1)  稳定class Solution {public:    //插入排序    void InsertSort(vector<int>& a)    {        for(int i=1;i<a.size();i++)        {            if(a[i]<a[i-1])            {                int tmp=a[i];                int j=i;                while(tmp<a[j-1])                {                    a[j]=a[j-1];                    j--;                }                a[j]=tmp;            }        }    }    vector<int> MySort(vector<int>& arr) {        InsertSort(arr);        return arr;    }};4.希尔排序    时间复杂度O(n^1.3)   空间复杂度O(1)  不稳定class Solution {public:    //Shell排序    void ShellSort(vector<int>& a)    {        int h=1;        while(h<a.size()/3)            h=3*h+1;        while(h>=1)        {            for(int i=h;i<a.size();i++)                for(int j=i;j>=h&&a[j]<a[j-h];j-=h)                    swap(a[j],a[j-h]);            h/=3;        }    }    vector<int> MySort(vector<int>& arr) {        ShellSort(arr);        return arr;    }};5.快速排序    时间复杂度O(nlogn)   空间复杂度O(nlogn)  不稳定class Solution {public:    //快速排序    void QuickSort(vector<int>& a,int l,int r)    {        if(l>=r) return;        int i=l,j=r,temp=a[i];        while(i<j)        {            while(i<j&&a[j]>=temp)                j--;            if(i<j)            {                a[i]=a[j];                i++;            }            while(i<j&&a[i]<temp)                i++;            if(i<j)            {                a[j]=a[i];                j--;            }        }        a[i]=temp;        QuickSort(a,l,i-1);        QuickSort(a,i+1,r);    }    vector<int> MySort(vector<int>& arr) {        QuickSort(arr,0,arr.size()-1);        return arr;    }};6.归并排序    时间复杂度O(nlogn)   空间复杂度O(1)  稳定class Solution {public:    //归并排序    void Merge(vector<int>& a,int l,int r)    {        if(l>=r)            return;        int m=(l+r)/2;        Merge(a,l,m);        Merge(a,m+1,r);        MergeSort(a,l,m,r);    }    void MergeSort(vector<int>& a,int l,int m,int r)    {        vector<int>temp;        int left=l,right=m+1;        while(left<=m&&right<=r)            temp.emplace_back(a[left]<=a[right]?a[left++]:a[right++]);        while(left<=m)            temp.emplace_back(a[left++]);        while(right<=r)            temp.emplace_back(a[right++]);        for(int j=0;j<temp.size();j++)            a[l+j]=temp[j];    }    vector<int> MySort(vector<int>& arr) {        Merge(arr,0,arr.size()-1);        return arr;    }};7.堆排序    时间复杂度O(nlogn)   空间复杂度O(1)  不稳定class Solution {public:    //堆排序    void MaxHeapify(vector<int>& a,int start,int end)    {        int dad=start;        int son=dad*2+1;        while(son<=end)        {            if(son+1<=end&&a[son+1]>a[son])                son++;            if(a[dad]>a[son])                return;            else            {                swap(a[dad],a[son]);                dad=son;                son=dad*2+1;            }        }    }    void HeapSort(vector<int>& a)    {        for(int i=a.size()/2-1;i>=0;i--)            MaxHeapify(a,i,a.size()-1);        for(int i=a.size()-1;i>0;i--)        {            swap(a[0],a[i]);            MaxHeapify(a,0,i-1);        }    }    vector<int> MySort(vector<int>& arr) {        HeapSort(arr);        return arr;    }};
点赞 13
评论 2
全部评论

相关推荐

04-29 15:00
东华大学 财务
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 13:13
ecece:这么明目张胆虚报就业率啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务