加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

冒泡排序,快速排序,归并排序

发布时间:2020-12-15 01:56:47 所属栏目:Java 来源:网络整理
导读:冒泡排序 #include iostream#include vectorusing namespace std;void mysort(vectorint da) { int n = da.size(); for (int i=0; in; ++i) { for (int j=0; jn-i-1; ++j) { if (da[j]da[j+1]) swap(da[j],da[j+1]); } }}int main(){ vectorint nums{9,8,7,4

冒泡排序

#include <iostream>
#include <vector>

using namespace std;

void mysort(vector<int>& da) {
    int n = da.size();
    for (int i=0; i<n; ++i) {
        for (int j=0; j<n-i-1; ++j) {
            if (da[j]>da[j+1]) swap(da[j],da[j+1]);
        }
    }
}

int main()
{
    vector<int> nums{9,8,7,4,5,6,2,1,3};
    mysort(nums);
    for (int i:nums) cout<<i<<' ';
    cout<<endl;
    return 0;
}

快速排序

#include <iostream>
#include <vector>

using namespace std;

void mysort(vector<int>& da,int s,int e) {
    if (s>=e) return ;
    int i=s,j=e,tmp=da[s];
    while(i<j) {
        while (i<j && da[j]>=tmp) j--;
        while (i<j && da[i]<=tmp) i++;
        swap(da[i],da[j]);
    }
    swap(da[s],da[i]);
    mysort(da,s,i-1);
    mysort(da,i+1,e);
}

int main()
{
    vector<int> nums{9,3};
    mysort(nums,nums.size()-1);
    for (int i:nums) cout<<i<<' ';
    cout<<endl;
    return 0;
}

归并排序

#include <iostream>
#include <vector>

using namespace std;

void mysort(vector<int>& da,int e) {
    if (s>=e) return ;
    int mid = s+((e-s)>>2);
    mysort(da,mid);
    mysort(da,mid+1,e);
    
    vector<int> tmp;
    int i=s,j=mid+1;
    while(i<=mid && j<=e) {
        if (da[i]<=da[j]) tmp.push_back(da[i++]);
        else tmp.push_back(da[j++]);
    }
    
    for(; i<=mid; ++i) tmp.push_back(da[i]);
    for(; j<=e; ++j)   tmp.push_back(da[j]);
    
    for (int k=s; k<=e; ++k) da[k]=tmp[k-s];
}

int main()
{
    vector<int> nums{9,nums.size()-1);
    for (int i:nums) cout<<i<<' ';
    cout<<endl;
    return 0;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读