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

7月31日作业

1:请使用函数模板,写一个能够针对所有数据类型的数据的快速排序函数 并多写几个数组做测试

代码

#include <iostream>
#include <cstring>
#include <cstdlib>
#include <unistd.h>
#include <sstream>
#include <vector>
#include <memory>using namespace std;template <typename T>
void quick_sort(T* arr,int left,int right){if(left>=right)return;int i=left,j=right;T temp=arr[left];while(i<j){while(i<j && *(arr+j)>=temp)j--;*(arr+i)=*(arr+j);while(i<j && *(arr+i)<temp)i++;*(arr+j)=*(arr+i);}*(arr+i)=temp;//递归调用直到一个元素为有序quick_sort(arr,left,i);quick_sort(arr,i+1,right);}int main(int argc,const char** argv){cout<<"整数数组排序:";int arr[]={6,5,2,4,43,2,32,4,43,56,47};int len_arr=sizeof(arr)/sizeof(arr[0]);quick_sort(arr,0,len_arr-1);for(int i=0;i<len_arr;i++)cout<<arr[i]<<" ";cout<<endl;cout<<"字符数组排序:";char chr[]={'w','2','1','y','U','&','@'};int len_char=sizeof(chr)/sizeof(chr[0]);quick_sort(chr,0,len_char-1);for(int i=0;i<len_char;i++)cout<<chr[i]<<" ";cout<<endl;cout<<"字符串数组排序";string str[]={"hello","nihao","woshi","afygj"};int len_str=sizeof(str)/sizeof(str[0]);quick_sort(str,0,len_str-1);for(auto a:str)cout<<a<<" ";cout<<endl;cout<<"double数组排序:";double nums[] = {3.14, 1.59, 2.65, 0.89, 5.21, 4.76};int len_double = sizeof(nums) / sizeof(nums[0]);quick_sort<double>(nums, 0, len_double - 1);for (auto num : nums) {cout << num << " ";}cout << endl;return 0;
}

运行结果

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

相关文章:

  • 模型训练速度慢排查
  • C++法则22:运算符 ::* 和 ->* 和 ::* 是独特的整体运算符,是不可分的。
  • 从关键词到用户意图:2025年Google Trends的语义化SEO实战手册
  • 化学结构式解读指南:从基础认知到InDraw智能识别
  • 大小端字节序详解
  • LCGL使用简介
  • Kubernetes架构概览
  • 2025虚幻5光明之魂开发思考1——借鉴软件工程
  • Dify 从入门到精通(第 6/100 篇):配置你的第一个 LLM:OpenAI、Claude 和 Ollama
  • kafka使用kraft
  • QT 动态属性和静态属性
  • Spring框架与AutoCAD结合应用
  • 2025年6月人工智能领域研究热点扫描|人工智能顶级期刊TPAMI
  • vue3 v-html绑定数据,点击sub实现popover效果
  • kamailio uac_req_send()
  • 项目中如何定义项目范围
  • 【Kiro Code 从入门到精通】重要的功能
  • 删除无效索引:提升写入性能的维护技巧
  • Linux日志管理与时间同步
  • 05 GWAS表型数据处理原理
  • Protobuf动态解析
  • 蓝牙耳机充不进去电怎么办?以换代修更简单!
  • 八股训练--Spring
  • Spring Batch参数校验失败问题分析:JobParametersValidator校验了两次JobParametersIncrementer的参数
  • 详解Vite 配置中的代理功能
  • JavaScript内存管理完全指南:从入门到精通
  • 智能化问题分析(Cherry Stdio+ MCP)
  • VS2022将.net4.8工程升级到.net6.0
  • 蚂蚁财富招Java高级研发
  • 基于deepseek的文本解析 - 超长文本的md结构化