栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

算法半期考复习——十大排序算法之六

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

算法半期考复习——十大排序算法之六

为了迎接算法设计课半期考,把几个比较简单的算法写了一写

#include
#include
#include

using namespace std;


void bubbleSort(vector &q){    //冒泡排序,时间复杂度O(N^2)
    for(int i=q.size()-1;i>0;i--)
    {
        bool flag=false;
        for(int j=0;j+1<=i;j++){
            if(q[j]>q[j+1]){
                swap(q[j],q[j+1]);
                flag=true;
            }
        }
        if(!flag)
        break;
    }
}


void selectSort(vector &q){  //选择排序,O(N^2)
   int min,len=q.size();
   for(int i=0;i &q){   //插入排序,O(N^2)
    for(int i=1;i=0;--j){  //无序区第一个元素前的都是有序区
            if(q[j]>tmp)
            {
                q[j+1]=q[j];
                q[j]=tmp;
            }
            else break;
        }
    }
}



void shellSort(vector &q){      //希尔排序
    int gap=q.size()/2;
    while(gap){
        for(int i=gap;i=0;j-=gap){
                if(q[j]>t)
                q[j+gap]=q[j];
                else
                break;
            }
            q[j+gap]=t;
        }
        gap/=2;
    }
}



void mergeSort(vector &q,int l,int r){     //归并排序O(nlogn)
    if(l>=r)
      return;
    int mid=l+r>>1;
    mergeSort(q,l,mid);
    mergeSort(q,mid+1,r);
    static vector w;
    w.clear();
    int i=l,j=mid+1;
    while(i<=mid&&j<=r){
        if(q[i]>q[j])
        w.push_back(q[j++]);
        else
        w.push_back(q[i++]);
    }
    while (i<=mid)
        w.push_back(q[i++]);
    while(j<=mid)
        w.push_back(q[j++]);
    for(int i:w)
        q[l++]=i;
}

void quickSort(vector &q,int l,int r){   //快排,yyds,O(nlogn)
    if(l>=r)
    return;
    int i=l-1,j=r+1,x=q[l+rand()%(r-l+1)];//哨兵
    while(ix);//找小于x的
        do i++;
        while(q[i] q;
    cin>>n;
    for(int i=0;i>t;
        q.push_back(t);
    } 
    
    for(int i=0;i
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/510848.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号