C+java排序

发布时间:2026/9/25 21:08:30

C+java排序 主要核心有7个排序一、直接插入排序时间复杂度O(N^2) 空间复杂度O(1) 稳定排序核心是将数组分为两个区间有序区间和待排序区间每次拿待排序区间第一个元素跟已排序区间从后往前比较大于才进行后移操作(保证稳定性)Java实现其中arr[cur1]value放在外面是为了保证下标为0的位置也可以插入元素C实现二、希尔排序时间复杂度最好能达到(N^1.3) 空间复杂度是O(1) 不稳定排序希尔排序是对直接插入排序的一种变形对直接插入排序当数组本身就有序跟要排的顺序一致或数组的小元素在前大元素在后时时间复杂度会下降。希尔排序利用这一点现将数组中元素分组对每组中数据进行直接插入排序最后再将分组个数减少最后到一组Java实现gap从 size/2 开始每次gap/2判断条件不能写gap1,会死循环所以最后加一个gap1时的希尔排序保证最后有序C语言实现这里gap每次除31这样不会死循环分组的次数也大三、选择排序时间复杂度O(N^2) 空间复杂度O(1) 不稳定排序使用了找数组中最值的思想也是分为待排序区间和已排序区间从待排序区间的首元素开始拿着它跟后面的元素比较比首元素小就交换找大放前面也行Java实现C语言实现四、堆排序时间复杂度O(NlogN) 空间复杂度O(1) 不稳定排序原理就是每次建立大堆的时候数组中最大的元素会被放在首元素小堆相反这样就可以每次让大堆的首元素与最后一个位置的元素交换减少堆中有效数据个数再向下调整重复操作Java实现C语言实现五、冒泡排序时间复杂度O(N^2) 空间复杂度O(1) 稳定排序原理很简单就是每次把最大值/最小值换到数组边上从前开始换小的从后开始换大的JavaC语言六、快速排序找一个基准值用最右边的定义两个指针分别从左右开始左边找到的就停下来右边找到的就停下来再交换。最后将left与right相遇位置数据与最右边数据交换此时这个基准值在数组中就有序了在返回相遇位置数组下标以[left,index-1] [index1,right]作为新区间重新进行。Java递归实现Java中非递归实现用一个栈对边界值进行保存C语言实现这是以最左边为基准值左边拿到的是基准值的右边拿到的是基准值的因为是拿beginend作为判断条件所以begin跟end会错位最后要返回end下标换有另一个写法快慢指针法定义一个cur一个prev将基准值的放右边的放左边每次cur走到小于基准值的地方就让prev若prev!cur就交换直到cur超出范围C语言非递归实现同样要借助栈来模拟后入先出的情况避免重复值太多使用三路划分保存key的值cur从left1开始arr[cur]小于基准值就跟left换换完leftcur,大于就和right换换完right--直至小于基准值数据换来换去会有很多无意义的操作官方数据库快排到一定深度时使用其他排序七、归并排序时间复杂度O(NlogN) 空间复杂度O(N) 稳定排序利用链表合并的思想将数组分为数组长度份单个元素让后再拼起来Java递归实现Java非递归实现这个非递归实现不需要栈来模拟后入先出的场景因此不需要栈只要一个size从1开始将数组分组相邻两组一合并因为采取[,)当mid或者rightsize时要让他sizeC语言递归实现与java大同小异区别就是C语言不能new数组所以一次申请一个相同长度的数组C语言非递归实现C语言对文件的归并排序八、计数排序时间复杂度O(Nrange) 空间复杂度O(range) 不稳定排序计数排序利用了哈希的思想拿待排序数据元素的值当新数组下标新数组的值当出现次数
延伸阅读

更多相关文章

2026/9/25 21:08:30

Docker Compose 常见报错排查笔记(含 nginx+mysql+redis 可运行模板)

前段时间帮同事看一个 docker compose up -d 起不来的项目,前后折腾了大半天,最后发现是 YAML 里混了一个 Tab。借这个机会把这两年用 Compose 踩过的坑整理一下,顺便把常用的模板存个档,下次直接抄。先说一个前提:本文…

2026/9/25 22:18:34

后端人别再焦虑了!核心能力其实就这些

打开技术社区,满屏都是“Spring Cloud Alibaba实战”“Service Mesh落地”“云原生架构演进”,再刷刷招聘要求,分布式、高并发、微服务、容器化、DDD……仿佛少学一样就会被时代抛弃。于是很多后端人陷入焦虑:新技术层出不穷&…

2026/9/25 22:18:34

2025 AI出海实战:算力选型、大模型部署与Agent落地关键节点

1. 算力格局变了,出海的起跑线也跟着变了2025年做AI出海,如果还拿2023年那套“国内训模型、海外套个壳”的思路来打,基本等于开局就落后半个身位。我过去一年跟几个做多模态和Agent方向的团队聊下来,最直观的感受是:算…

2026/9/25 22:18:34

从自研RAG到WeKnora:企业知识库落地全记录

去年年初我们团队接了一个内部知识库的项目,要求把几十万份产品文档、故障工单和技术规范变成可检索、可问答的资产。一开始我们天真地以为“接个大模型API就完事了”,结果两个月下来,最耗精力的根本不是模型本身,而是围绕知识接入…

2026/9/25 22:18:34

Atlas 300V 24G推理加速卡跑YOLO:从环境搭建到模型转换全攻略

看到“atlas 300v 24g 是运算加速卡吗”这个问题,我第一反应是,又有人要入坑 AI 推理这条线了。先给结论:Atlas 300V 24G 确实是一张运算加速卡,但它不是普通显卡,更不是用来打游戏的,它是一张专门为神经网…

2026/9/25 22:13:33

邹平省心的新房装修设计公司实力与用户口碑

淄博业之峰家园装饰有限公司是淄博本土深耕家装行业的正规服务商,成立24年来始终立足淄博本地需求,为各类家装业主提供全流程的品质装修服务,其核心定位是做淄博人值得托付的良心家装品牌,主营别墅装修、新房装修、老房改造、大平…

2026/9/25 21:00:17

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/25 20:59:52

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/25 0:02:35

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:02:35

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:02:35

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 20:55:38

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/25 18:41:36

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/25 18:34:56

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑