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

排序算法(c++)(面试手撕)

一.面试手撕原题的题目排序逻辑是 输入一个数组和一个kk0就是降序k1就是升序。class Solution { public: vectorint sortArray(vectorint nums, int k) { int n nums.size(); for (int i 0; i n - 1; i) { bool swapped false; for (int j 0; j n - i - 1; j) { // 根据 k 决定比较方向 bool needSwap (k 1) ? (nums[j] nums[j 1]) : (nums[j] nums[j 1]); if (needSwap) { swap(nums[j], nums[j 1]); swapped true; } } if (!swapped) break; // 没有交换则已经有序 } return nums; } };1.冒泡排序 O(n^2)class Solution { public: vectorint sortArray(vectorint nums) { int n nums.size(); for (int i 0; i n - 1; i) { bool swapped false; for (int j 0; j n - i - 1; j) { if (nums[j] nums[j 1]) { swap(nums[j], nums[j 1]); swapped true; } } if (!swapped) break; } return nums; } };2.快速排序class Solution { public: vectorint sortArray(vectorint nums) { quicksort(nums,0,nums.size()-1); return nums; } void quicksort(vectorint nums,int left,int right){ if(leftright) return; int ppivotnum(nums,left,right); quicksort(nums,left,p-1); quicksort(nums,p1,right); } int pivotnum(vectorint nums,int left,int right){ int randIdx left rand() % (right - left 1); swap(nums[randIdx], nums[right]); int anums[right]; int ileft; for(int jleft;jright;j){ if(nums[j]a){ swap(nums[i],nums[j]); i; } } swap(nums[i],nums[right]); return i; } };
http://www.gsyq.cn/news/1389183.html

相关文章:

  • 2026年靠谱的 山东旧楼加装电梯施工单位排行 合规高效服务商盘点 - 奔跑123
  • 2026广州装修公司一站式对比避坑指南推荐对比 - GEO排行榜
  • 干货指南:GEO 源头厂家性价比高的有哪些? - myqiye
  • 如何使用MTKClient工具链诊断和修复MTK设备Preloader与GPT分区故障
  • Metasploit渗透测试实战:从模块化原理到等保合规落地
  • 2026年成都这些服务好的GEO外包公司,究竟好在哪? - 企业推荐官
  • GraphRAG:知识图谱赋能生成式AI,突破传统检索局限,实现精准多跳推理与可解释生成!
  • 魔兽争霸3终极性能优化指南:5个简单步骤实现高帧率游戏体验
  • 提示工程核心技巧:从基础原则到实战框架的AI协作指南
  • 2026最新五家简阳市黄金回收白银回收铂金回收彩金回收店铺靠谱回收门店推荐TOP5排行榜及联系方式推荐 - 前途无量YY
  • 河北四家声屏障厂家实测评测:合规性与工况适配对比 - 奔跑123
  • 如何快速开启中兴光猫工厂模式:网络管理员的完整指南
  • MCP Server上线那天,我连踩5个坑
  • Seraphine终极指南:英雄联盟智能战绩查询与自动BP工具完全解析
  • 太原科技大学李岩团队NTE期刊一种ELTDF-Net焊接缺陷检测模型
  • 终极WeMod增强工具:三步解锁Pro功能,打造个性化游戏体验
  • 【智能算法MATLAB例程】养老服务站选址优化求解与结果可视化
  • 从信号处理到机器学习:聊聊lp空间和Lp空间到底怎么用(附Python小例子)
  • RV1126/RV1109 EVB板SDK v2.2.5保姆级配置指南:从虚拟机到烧录全流程避坑
  • 全球微压氧舱市场深度分析报告
  • 告别千兆以太网调试噩梦:用Zynq/ZedBoard实测RGMII-ID与Original模式差异
  • 从理论到实践的全面开展
  • 全球微生物学检验市场深度研究报告
  • 为什么你的鼠标总感觉不够精准?解锁专业鼠标性能测试的秘密
  • TDC-GPX2高精度时间测量实战:在没有专业仪器时,如何用FPGA自校准与验证数据?
  • 三分钟掌握:如何用bili2text将B站视频快速转为文字稿
  • 不要错过这 10 个本周火火火的 GitHub 开源项目。
  • 【实战指南】Beyond Compare密钥生成:三步解锁专业版完整功能
  • 智能体编码实践复盘:从AI辅助开发到工程化落地的挑战与优化
  • 排序算法完全指南(六):希尔排序深度详解