C++排序类模板, 排序类

用c++语言编写的一个模板类(8种排序方法) 这是我用c++语言编写的一个模板类,主要封装了各种排序方法(直接插入、二分插入、简单交换、冒泡、简单选择、快速排序、归并排序、堆排序),并能统计所用时间以及排序所用的交换次数、比较次数,在Visual stidio 2010编译通过 。因为是模板类。所以类定义和实现文件放到一起,希望能对学习c++语言的朋友有所帮助。在使用中,如果发现错误和可以改进的地方,请联系QQ:1341213535。 立即下载

我的C++一直比较水,平时都用C写程序,今天想写一个排序类模板,练习一下。

希尔排序,快速排序,归并排序,选择排序,冒泡排序,堆排序,插入排序

再添加一个二分法查找吧。

这些代码只经过了简单的测试。


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

template <class Type>
class sort {
	public:
		sort(int (*cmp)(Type t1, Type t2));
		~sort() {}
		void adjust_heap(Type *root, int i, int size);
		void create_heap(Type *root, int size);
		void heap_sort(Type *root, int size);
		void select_sort(Type *root, int size);
		void shell_sort(Type *root, int size);
		void quick_sort(Type *root, int l ,int r);
		int partition(Type *root, int l, int r);
		void merge_sort(Type *root, int l, int r);
		void merge(Type *root, int l, int mid, int r);
		void bubble_sort(Type *root, int size);
		void insert_sort(Type *root, int size);
		Type *binary_search(Type *root, int size, Type *s);
	private:
		int (*compare)(Type t1, Type t2);
};

template <class Type> 
Type * sort<T
c++实现常见排序模板 c++实现常见排序的模板:快排 堆排 折半 冒泡 选择 希尔 插入排序 可选择排序的数量 最终输出各种排序耗时 立即下载

相关推荐

C++实现的排序类,多种排序方法

C++实现的排序类,包括了经典排序,冒泡排序,插入排序,归并排序,快速排序等多种排序的实现。对C++初学者,以及算法初学者很有帮助。

c++模板类实现快速排序

用模板类实现的一个简易的c++程序,实现了快速排序。

基于C++的排序类

基于C++ 的一个排序类 个人总结 适合初步入门数据结构的同学

R分析|怎么样使用piecewiseSEM构建结构方程模型?保姆级教程

计算科学的发展让我们有了更先进的工具揭示自然规律。结构方程模型(SEM)已被广泛应用于多学科进行数据挖掘。其中在R中实现的结构方程模型是方便快捷的。今天要介绍的piecewiseSEM包就是R中实现SEM的一种方式。piecewiseSEM被开发出来主要目的是为了解决复杂模型简化后进行分段分析。个人认为最大的特点是更灵活,且采用的是原始数据,并不是传统的协方差矩阵。其次,将SEM破碎化为多个独立的方程,对样本量要求较少。

weixin_46814750的博客 6927

ANSYS_APDL实战入门——从零开始掌握模态分析

本文为ANSYS APDL模态分析实战入门指南,通过一个悬臂梁案例,手把手教你从零开始掌握APDL命令流。内容涵盖从模型创建、材料定义、网格划分到边界条件设置、求解及后处理结果查看的全流程,帮助工程师快速上手结构动力学分析,避免共振风险。

egg99的博客 1129

3D IC中Memory-on-Logic堆叠测试的DFT解决方案与工程实践

在半导体行业,随着摩尔定律逼近物理极限,3D IC技术通过芯片垂直堆叠实现性能提升和异构集成,已成为重要发展方向。其核心原理是利用硅通孔(TSV)或微凸块实现芯片间电气互连,将多个不同功能的芯片(如逻辑芯片与存储芯片)集成在一个封装内。这项技术的核心价值在于能大幅提升系统性能、降低功耗并实现更小的封装尺寸。然而,芯片堆叠后,传统的测试方法面临巨大挑战,尤其是测试访问存在物理屏障,无法直接探测被覆盖的芯片接口。为此,可测试性设计(DFT)成为确保3D IC可靠性与量产可行性的关键技术。它通过在设计阶段植入专用

weixin_42521058的博客 631

Android汽车服务篇(一) CarService

本文主要说明了CarService这一系统服务的启动流程,以及一些关键成员的创建和初始化流程.同时简单介绍了一下客户端是如何获取和使用CarService对象, 如上文介绍的, CarService对象只是获取各个Manager的媒介,它本身并不承担管理传感器.空调等具体的任务.如果要获取车辆的相关信息,如车速, 车内空调温度,诊断信息, 或对车辆进行相关的控制,如升高和降低空调温度,控制座椅和车窗, 调节音量等,就要通过具体的Manager中的API和对应的服务来实现了.

u012514113的专栏 8145

西门子CPU与汇川伺服通信与控制

第三方驱动器的配置内容和西门子的配置内容基本一致,基本上会一种即可知道其他品牌的配置默认报文,需要激活硬限位才能收到限位信号默认报文,原点信号不能实时输出到PLC;自定义报文,需要伺服端设置DIN点位。

大小曲奇的博客 1万+

SAP Fiori Launchpad 上看不到任何 tile 应该怎么办?

中心UI组件是一个框架,为所有SAPFiori应用程序提供公共基础设施SAPFiorilaunchpad是所有SAPFioriUI的基础,并为SAPFiori应用程序提供基本功能,如登录,界面大小,应用程序之间的导航,和基于角色的应用程序目录。ABAP前端服务器包含所有基础设施组件,用于为客户端生成SAPFiori应用程序特定的UI,并与SAPBusinessSuite后端系统通信。SAPFiori应用程序的处理过程如下首先,客户端加载SAPFiori应用程序的界面。...

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 940

创新引入HAttention模块:提升YOLOv8小目标检测精度【YOLOv8】

YOLOv8在前几个版本的基础上进行了多项优化,特别是在模型的速度和精度上做了较大改进。改进的backbone:引入了更加高效的骨干网络(backbone)设计,如更深的网络层和更高效的特征提取模块。增强的Neck模块:使用了PANet等机制来更好地融合不同尺度的特征,增强了多尺度目标检测能力。增强的Head模块:包括多头检测头,以便针对不同大小的目标进行更精细的预测。尽管如此,YOLOv8仍面临着在小目标检测精度上不如大型目标的挑战,尤其在复杂背景或高密度目标环境下。

博客 2769

【异常】OpenClaw对接钉钉/飞书配对成功但无响应 全流程排查指南(适配阿里轻量服务器+OpenClaw)

下面按「先快速定位根因→通用核心排查→平台专属排查→兜底方案」的顺序,一步步解决,新手也能跟着操作。

奶爸的编程之路,也就一周冷个三天 696

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: c++模板实现shell排序
下一篇: 看nginx内存管理的一些感想
smallmelon
博客等级 码龄16年 22粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值