基础算法--冒泡排序,选择排序,插入排序

冒泡排序做了优化,都是很基础的排序算法就不多做什么说明了。

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
void bubble_sort(vector<int>&f){
    for(int i=f.size()-1;i>0;i--){
        bool flag=false;
        for(int j=0;j+1<=i;j++)
            if(f[j]>f[j+1]){
                swap(f[j],f[j+1]);
                flag=true;
            }
        if(!flag)break;
    }
}
void select_sort(vector<int>&f){
    for(int i=0;i<f.size();i++)
        for(int j=i+1;j<f.size();j++)
            if(f[i]>f[j])
                swap(f[i],f[j]);
}
void insert_sort(vector<int>&f){
    for(int i=1;i<f.size();i++){
        int q=f[i],j;
        for(j=i-1;j>=0;j--)
            if(f[j]>q)f[j+1]=f[j];
            else break;
        f[j+1]=q;
    }
}
int main(void){
    int n;
    cin>>n;
    vector<int>f;
    for(int i=0,t;i<n;i++){
        cin>>t;
        f.push_back(t);
    }
    //bubble_sort(f);
    //select_sort(f);
    insert_sort(f);
    for(auto x:f)cout<<x<<' ';
    cout<<endl;
    return 0;
}

 

posted @ 2019-07-09 20:02  YF-1994  阅读(220)  评论(0编辑  收藏  举报