c++各种排序算法实现
tmp; merge(a,left,mid,right);}int main(){ int a[]={5,4,7,3,2,8,6,1}; int n=sizeof(a)/sizeof(int); //bool res=bubblesort(a,n); //bool res=bubblehigh(a,n); //quicksort(a,0,n-1); //bool res=insertsort(a,n); //bool res=halfsort(a,n); //bool res=shellsort(a,n); //bool res=selectsort(a,n); //bool res=heapsort(a,n); mergesort(a,0,n-1); cout<<"排序后结果:"; for(int i=0;i<8;i++) { cout< <<" "; } cout<
发布日期:2022-02-21 17:40:30
浏览次数:83
分类:技术文章
本文共 1909 字,大约阅读时间需要 6 分钟。
#include#include #include #include using namespace std;//含有跳跃式交换的排序算法,都是不稳定的算法//---------交换类-------//冒泡排序---稳定的排序、最好n、平均n^2、最坏n^2bool bubblesort(int a[],int n){ if(a==NULL) return false; bool btmp; for(int i=n-1;i>0;i--) { btmp=false; for(int j=0;j 0&&btmp) { btmp=false; for(j=0;j a[j+1]) { int tmp=a[j]; a[j]=a[j+1]; a[j+1]=tmp; btmp=true; aus=j; } } i=j; if(btmp==false) return true; } return true;}//快排----不稳定的排序、最好nlgn、平均nlgn、最坏n^2(不能够进行二分)void quicksort(int a[],int le,int rg){ if(le>=rg) return; int left=le; int right=rg; int mid=a[left]; while(left =0&&tmp =left;j--) a[j+1]=a[j]; a[j+1]=tmp; } return true;}//增量排序--不稳定的排序,最差复杂度n^2,最好nlgn,平均n1.3bool shellsort(int a[],int n){ if(a==NULL) return false; int d=n/2; while(d>=1) { for(int i=0;i =i&&a[k]>tmp)///注意这里是k>i { a[k+d]=a[k]; k=k-d; } a[k+d]=tmp; } } d=d/2; } return true;}//-------选择类----//直接选择排序,时间复杂度最好n^2,平均n^2,最坏n^2//例如8* 3 5 4 8 3 1 9 并不稳定bool selectsort(int a[],int n){ if(a==NULL) return false; for(int i=0;i a[dad]) { int tmp=a[son]; a[son]=a[dad]; a[dad]=tmp; dad=son; son=2*son+1; } else return; }}bool heapsort(int a[],int n){ if(a==NULL) return false; for(int i=(n/2)-1;i>=0;i--) adjustsort(a,i,n); for(int i=n-1;i>=0;i--) { int tmp=a[i]; a[i]=a[0]; a[0]=tmp; adjustsort(a,0,i); } return true;}//归并排序void merge(int a[],int le,int mid,int rg){ int l=le; int r=mid+1;// int tmp[rg-le+1]; vector tmp; while(l<=mid&&r<=rg) { if(a[l]
还有: 桶排序和基数排序
效率比较:
转载地址:https://blog.csdn.net/weixin_40599276/article/details/100838430 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年03月05日 20时34分06秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
java矩阵类_Java泛型——泛型矩阵类
2019-04-21
java车牌正则表达式_车牌正则表达式
2019-04-21
安卓是用java语言写的吗_android开发是用java语言吗?
2019-04-21
java 符号 t_java – 运算符”不能应用于’T’,’T’表示有界泛型类型
2019-04-21
用matlab写出信源熵,计算离散信源的熵matlab实现
2019-04-21
php表单yii2,Yii2创建表单(ActiveForm)方法详解
2019-04-21
php 程序授权机制,授权认证详细说明
2019-04-21
java 命令提示符,如何使用Java打开命令提示符并插入命令?
2019-04-21
linux移动文件的脚本,使用Linux脚本移动文件
2019-04-21
linux查看系统所有变量,Linux系统各指标命令
2019-04-21
linux打印机守护程序,linux下怎么编写守护程序呢?
2019-04-21
嵌入式linux 设置时间,time_clock控件应用,使用命令date -s 12:00:00手动设置时间后,时间就停住不走了,我在Ubuntu和嵌入式Linux平台都测试到了...
2019-04-21
linux监控windows,zabbix监控之linux及windows客户端安装配置
2019-04-21
linux中怎么卸载tree,Liunx系统命令中tree命令详解
2019-04-21
linux 网络音箱 混音6,Linux音频编程(三)混音器介绍
2019-04-21
node与mysql开源_node与mysql的相互使用————node+mysql
2019-04-21