news 2026/7/27 21:52:30

算法面试——排序算法手撕:快排、归并、堆排模板

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
算法面试——排序算法手撕:快排、归并、堆排模板

面试手撕排序算法是必考环节。快排、归并、堆排这三种手写频率最高。

一、快速排序

publicvoidquickSort(int[]arr,intlow,inthigh){if(low>=high)return;intpivot=partition(arr,low,high);quickSort(arr,low,pivot-1);quickSort(arr,pivot+1,high);}privateintpartition(int[]arr,intlow,inthigh){intpivot=arr[low];while(low<high){while(low<high&&arr[high]>=pivot)high--;arr[low]=arr[high];while(low<high&&arr[low]<=pivot)low++;arr[high]=arr[low];}arr[low]=pivot;returnlow;}

二、归并排序

publicvoidmergeSort(int[]arr,intleft,intright){if(left>=right)return;intmid=left+(right-left)/2;mergeSort(arr,left,mid);mergeSort(arr,mid+1,right);merge(arr,left,mid,right);}privatevoidmerge(int[]arr,intleft,intmid,intright){int[]temp=newint[right-left+1];inti=left,j=mid+1,k=0;while(i<=mid&&j<=right)temp[k++]=arr[i]<=arr[j]?arr[i++]:arr[j++];while(i<=mid)temp[k++]=arr[i++];while(j<=right)temp[k++]=arr[j++];System.arraycopy(temp,0,arr,left,temp.length);}

三、堆排序

publicvoidheapSort(int[]arr){for(inti=arr.length/2-1;i>=0;i--)heapify(arr,i,arr.length);for(inti=arr.length-1;i>0;i--){swap(arr,0,i);heapify(arr,0,i);}}privatevoidheapify(int[]arr,inti,intn){intlargest=i;intleft=2*i+1,right=2*i+2;if(left<n&&arr[left]>arr[largest])largest=left;if(right<n&&arr[right]>arr[largest])largest=right;if(largest!=i){swap(arr,i,largest);heapify(arr,largest,n);}}

💡 觉得有用的话,点赞 + 关注【张老师技术栈】吧!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/27 21:52:25

探索DiffSynth-Studio:让AI扩散模型变得触手可及

探索DiffSynth-Studio&#xff1a;让AI扩散模型变得触手可及 【免费下载链接】DiffSynth-Studio Enjoy the magic of Diffusion models! 项目地址: https://gitcode.com/GitHub_Trending/dif/DiffSynth-Studio 在AI创作的世界里&#xff0c;扩散模型正以前所未有的速度改…

作者头像 李华
网站建设 2026/7/27 21:51:01

深入解析TI MibSPI核心寄存器:从数据流到动态控制与可靠通信

1. 项目概述与核心价值 在嵌入式开发领域&#xff0c;尤其是基于德州仪器&#xff08;TI&#xff09;C2000系列微控制器的项目中&#xff0c;SPI&#xff08;串行外设接口&#xff09;是连接外部存储器、传感器、显示屏等外设的“血管”。但很多工程师&#xff0c;尤其是刚接触…

作者头像 李华
网站建设 2026/7/27 21:50:22

LLM-in-Sandbox框架:AI在虚拟沙盒中的通用智能探索

1. LLM-in-Sandbox框架概述 LLM-in-Sandbox是一种创新的AI框架&#xff0c;它将大型语言模型&#xff08;LLM&#xff09;置于一个虚拟的代码沙盒环境中运行。这个沙盒本质上是一个功能完整的虚拟计算机系统&#xff0c;为LLM提供了终端访问和完整的系统能力。与传统的LLM运行方…

作者头像 李华
网站建设 2026/7/27 21:46:43

如何快速部署UAVStack?5分钟上手微服务监控利器

如何快速部署UAVStack&#xff1f;5分钟上手微服务监控利器 【免费下载链接】uavstack UAVStack Open Source All in One Repository 项目地址: https://gitcode.com/gh_mirrors/ua/uavstack UAVStack是一款功能强大的微服务监控利器&#xff0c;集成了全维监控、应用性…

作者头像 李华
网站建设 2026/7/27 21:45:09

NTFS To FAT32 使用教程:把 NTFS 格式的 U 盘/移动硬盘无损转为 FAT32,解决车载/电视/老设备不认盘,NTFS 转 FAT32 转换工具新手 5 分钟上手(2026)

作为一名在 IT 运维和桌面支持一线摸爬滚打了 15 年的老技术人&#xff0c;我每天要在十几台电脑之间来回切换。Windows 自带格式化只能把 32GB 以上分区格式化成 exFAT/NTFS&#xff0c;FAT32 被刻意限制&#xff1b;这个工具绕开限制&#xff0c;且承诺不清空数据。今天就把 …

作者头像 李华
网站建设 2026/7/27 21:44:10

大语言模型后训练技术:从SFT到RLHF/DPO实战解析

1. 后训练技术概述&#xff1a;从预训练到实用模型的关键跃迁 在构建现代大语言模型的实际工程中&#xff0c;预训练只是万里长征的第一步。就像造车不能只生产发动机一样&#xff0c;预训练得到的"通才"模型需要通过后训练(post-training)才能真正成为特定场景下的&…

作者头像 李华