排序算法(快排、归并、计数、基数排序)
📅 2026/7/23 2:20:14
👁️ 次浏览
排序排序概览排序方法时间复杂度平均时间复杂度最坏稳定性快速排序nlognn方不稳定归并排序nlognnlogn稳定计数排序nknk稳定基数排序n kn k稳定堆排序nlognnlogn不稳定选择排序n方n方不稳定冒泡排序n方n方稳定插入排序n方n方稳定一.快速排序排序思想排序区间为[l, r]如果区间长度小于等于1则直接退出, 否则选一个区间中随机的数字x与l位元素交换作为比较元素将大于x的数字放在左边, 小于的放在右边,等于的也要换边!!此时x的位置已经固定, 对两边区域的分别递归一开始的区间为[1, n]两个指针分别从l和r开始向中间扫描, 直到相遇结束一次扫描代码实现void quicksort(int l,int r){ if(l r) return; swap(a[l], a[l rand() % (r - l 1)]); int x a[l]; int i l, j r; while(i j){ while(i j a[j] x) j--; if(i j) a[i] a[j]; while(i j a[i] x) i; if(i j) a[j--] a[i]; } a[i] x; quicksort(l, i - 1); quicksort(i 1, r); }补充实际打比赛可用sort()函数, 可以直接快排对于多关键字排序可以重构比较符号struct Node{ int x, y; bool operator (const Node A) const{ if(x ! A.x) return x A.x; return y A.y; } } a[N 1];找第k小的数用快排, 每一轮只要比较i和k, 然后排一半即可二.归并排序排序思想排序区间为[l, r]如果区间长度为1则直接退出, 否则将区间分为[l, m]和[m1, r]俩部分, 其中m ( l r ) / 2递归两个子区间进行排序将两个已经排好的子区间合并一开始只要对区间[1, n]排序即可代码实现void mergesort(int l,int r){ if(l r) return; int m (l r) / 2; mergesort(l, m); mergesott(m 1, r); int p1 l, p2 m 1, tot 0; while(p1 m p2 r){ if(a[p1] a[p2]) c[tot] a[p1]; else c[tot] a[p2]; } while(p1 m) c[tot] a[p1]; while(p2 r) c[tot] a[p2]; for(int i 1; i tot; i) a[i l - 1] c[i]; }三.计数排序排序思想统计每个数据出现了几次统计完每个元素后, 求一遍前缀和, 就知道每个数字在排序完后的序列中出现的位置把数字填入对应的位置即可代码实现int n, m, a[N 1], c[M 1], r[N 1]; inline void countingsort(){ memset(c, 0, sizeof(c)); for(int i 1; i n; i) c[a[i]]; for(int i 1; i m; i){ for(int j 1; j c[i]; j) printf(%d, r[i]); } printf(\n); for(int i 2; i m; i) c[i] c[i-1]; for(int i n; i; --i) r[i] c[a[i]]--; for(int i 1; i n; i) printf(%d, r[i]); printf(\n); }补充适用于值域范围较小的数字排列四.基数排序排序思想拆分成m个关键字, 从后往前对这些关键字排序, 每次排序会使用上一次的排序结果每一次是用计数排序来实现假设已经排完了第i个及以后的关键字, 现在要排第i - 1个关键字,这里是一个双关键字排序, 第一关键字是第i - 1个关键字, 第二关键字是第i个及以后的关键字的rank我们只需要把数字按照第i个及以后的关键字从小到大排序放在数组里, 再进行一次计数排序即可( 因为计数排序是稳定的 )代码实现int n, m, a[N 1], sa[N 1], v[N 1], r[N 1], c[M 1]; inline void countingsort(){ memset(c, 0, sizeof(c)); for(int i 1; i n; i) c[a[i]]; for(int i 2; i m; i) c[i] c[i-1]; for(int i n; i; --i) r[sa[i]] c[v[sa[i]]]--; for(int i 1; i n; i) sa[r[i]] i; } inline void radisort(){ for(int i 1; i n; i) sa[i] i; int x 1; for(int i 1; i m; i, x*10){ for(int j 1; j n; j) v[j] a[j] / x % 10; countingsort(); } }补充基数排序经常被用于字符串的排序, 比如说后缀数组的核心就是基数排序
如果你最近关注 AI 编程助手的发展,可能会发现一个明显的趋势:从简单的代码补全,到能够自主完成复杂工程任务,AI 正在重新定义开发流程。而 Anthropic 团队近期透露的一个内部数据尤为引人注目——他们的内部工具 Claude Tag 已经…
📅 2026/7/23 2:20:14
人才发展与梯队培养全景图
📅 2026/7/23 2:20:14
2026年适合会议纪要录音转文字的AI工具,可根据自身会议场景、整理需求从定向推荐清单中选择。适合需要快速产出规范纪要、减少手动整理工作量的职场人、效率工具爱好者。核心筛选标准为转写准确率、后续纪要处理能力、单小时录音处理效率,不适合坚持全流…
📅 2026/7/23 2:20:14
(本文借助 AI 大模型及工具辅助整理)
一句话总结:Google 三款新 Gemini 模型发布但 3.5 Pro 仍缺席,OpenAI 承认"意外入侵"Hugging Face 震动安全圈,Jack Dorsey 携 Buzz 入局 AI Agent 协作平台࿰…
📅 2026/7/23 3:32:35
1. 项目概述:从物理介质到数字文件的完整转换流程十年前我第一次尝试把收藏的DVD电影备份到硬盘时,经历了无数次失败——要么音画不同步,要么画质惨不忍睹。现在回头看,那些问题其实都源于对转码原理的理解不足。这个教程将系统性…
📅 2026/7/23 3:32:35
1. 不到十万纯电SUV的市场冲击波去年我在深圳车展第一次见到这台车时,着实被它的配置单惊到了——激光雷达、高通8295芯片、505km续航,这三个关键词随便哪个放在传统车企至少都是20万级别的配置。更夸张的是,销售告诉我这车落地价能控制在10万…
📅 2026/7/23 3:32:35
1. 项目概述:中文文本分类的毕业设计实践中文文本分类作为自然语言处理(NLP)的基础任务,在信息过滤、情感分析、新闻推荐等领域有广泛应用。这个毕业设计项目同时采用机器学习和深度学习两种技术路线,既能掌握传统方法…
📅 2026/7/23 3:32:35
从剧本到成片:AI 短剧生产平台的工程化架构与落地实践AI 短剧真正困难的部分,通常不是调用一次大模型,而是把剧本解析、分镜生成、文生图、图生视频、配音、字幕、合成等环节组织成一条稳定、可恢复、可扩展的生产线。本文以 Python、FastAPI…
📅 2026/7/23 3:32:35
刚拆开快递盒那会儿,我差点没忍住把键盘扔出去。那股子塑料味混着新轴的机油味,直往鼻子里钻,呛得我想咳嗽。说实话,第一次接触geo series键盘的时候,我是带着三分好奇七分嫌弃的。网上吹得天花乱坠,什么“客制化平替”、“颜值天花板”,我心想,不就是个组装货吗?能有…
📅 2026/7/23 3:32:01
更多请点击:
https://intelliparadigm.com
第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…
📅 2026/7/23 0:00:26
最近好多同行在群里问 geo s1230 到底值不值得买。说实话,这机器在二手市场挺火。但水很深,新手很容易踩雷。我干了十年设备维护,见过太多冤大头。今天不扯虚的,直接上干货。先说价格,心里得有底。目前成色不错的二手货,大概在一万二到一万五之间。如果低于八千,别犹豫,…
📅 2026/7/23 0:01:16
更多请点击:
https://codechina.net
第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现࿱…
📅 2026/7/23 0:01:26
1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…
📅 2026/7/23 1:06:38
1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…
📅 2026/7/23 1:06:38
更多请点击:
https://intelliparadigm.com
第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…
📅 2026/7/23 1:06:38
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/22 7:05:39
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/22 17:06:14
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/22 5:05:32