当前位置: 首页 > news >正文

C++-2025.7.31

请使用函数模板,写一个能够针对所有数据类型的数据的快速排序函数

#include <iostream>
#include <cstring>
#include <cstdlib>
#include <unistd.h>
#include <sstream>
#include <vector>
#include <memory>using namespace std;class Stu{
private:public:};template<typename T1, typename T2, typename T3>
// 一次排序
T2 one_sort (T1* arr, T2 low, T3 high) {// 记录基准数T1 pivot = *(arr+low);// 左右指针碰到一起时退出循环while (high > low) {while (*(arr+high) >= pivot && high > low) {high--;}*(arr+low) = *(arr+high);while (*(arr+low) <= pivot && high > low) {low++;}*(arr+high) = *(arr+low);}*(arr+low) = pivot;return low;
}template<typename T1, typename T2, typename T3>
// 快速排序
void sort(T1* arr, T2 low, T3 high) {T2 ret;if (high > low) {ret = one_sort(arr, low, high);// 递归// 左边sort(arr, low, ret - 1);// 右边sort(arr, ret + 1, high);}
}int main(int argc,const char** argv){int arr[] = {4,5,7,3,6,2,45,21,32};sort(arr, 0, sizeof(arr)/sizeof(int)-1);for (int i = 0; i < sizeof(arr)/sizeof(int); i++) {cout << arr[i] << " ";}cout << endl;double arr1[] = {4.2,5.6,7.7,3.1,6.5,2};sort(arr1, 0, sizeof(arr1)/sizeof(double)-1);for (int i = 0; i < sizeof(arr1)/sizeof(double); i++) {cout << arr1[i] << " ";}cout << endl;char arr2[] = {'a', 'F', 't', 'e', 'Q', 'y', 'z'};sort(arr2, 0, sizeof(arr2)/sizeof(char)-1);for (int i = 0; i < sizeof(arr2)/sizeof(char); i++) {cout << arr2[i] << " ";}cout << endl;return 0;
}

http://www.dtcms.com/a/308999.html

相关文章:

  • LaTeX 表格制作全面指南
  • js防抖、节流和扁平化实现
  • 链特异性文库是什么?为什么它在转录组测序中越来越重要?
  • 【Kubernetes 指南】基础入门——Kubernetes 201(三)
  • 第13届蓝桥杯C++青少组中/高级组选拔赛2022年3月13日真题
  • pdw估计edw怎么估计
  • 数据结构: 双向链表
  • Servlet修改新增思路
  • 数据大集网:引领精准获客新时代的优质平台
  • 数据结构:多项式加法(Polynomial Addition)
  • 从零开始搞定类和对象(上)
  • Python 环境配置
  • 【科普】贝叶斯神经网络与分形神经网络
  • 0731 IO进程基础
  • AscendantPath | 实现视觉小说的人物对话系统(二)
  • 逻辑回归算法基础介绍,简单的二分类三分类实例
  • 代码随想录刷题Day21
  • 面试题及解答:锁
  • 字母异位词分组(每天刷力扣hot100系列)
  • 即时通讯系统项目面试可能的考点
  • 对git 熟悉时,常用操作
  • QT收费情况
  • 谷歌V3插件热更新
  • 类与对象(上),咕咕咕
  • 【Node】nvm在windows系统无管理员权限切换node版本
  • 20250731在荣品的PRO-RK3566开发板的Android13下跑通敦泰的FT8206触控芯片
  • 【Java EE初阶 --- 网络原理】网络层---IP协议,数据链路层---以太网协议
  • OpenCV学习day2
  • YodA数据集的格式化(二)
  • MySQL 8.0 OCP 1Z0-908 题目解析(39)