归并排序是分而治之的典型用法,其实现大致有4个步骤
1: 如果排序列表的长度为0或1,说明已经排序,直接返回。
2:把未排序列表从中间分为2个列表
3:递归的排序2个子列表
4:合并这2个子列表
归并排序的优点:
1:在小列表上排序所需的步骤元少于大列表排序的步骤
2:从2个有序的列表中构建有序列表所需步骤远少于未排序的2个的合并步骤
function mergesort(m)
var list left, right, result
if length(m) ≤ 1
return m
var middle = length(m) / 2
for each x in m up to middle
add x to left
for each x in m after middle
add x to right
left = mergesort(left)
right = mergesort(right)
result = merge(left, right)
return result
function merge(left,right)
var list result
while length(left) > 0 and length(right) > 0
if first(left) ≤ first(right)
append first(left) to result
left = rest(left)
else
append first(right) to result
right = rest(right)
end while
if length(left) > 0
append rest(left) to result
if length(right) > 0
append rest(right) to result
return result
分享到:
相关推荐
这个压缩包文件提供的资源是一个Python实现的人工智能算法合集,包含了多种优化算法的示例代码,如遗传算法、粒子群算法、模拟退火、蚁群算法、免疫优化算法以及鱼群算法,还涉及到经典的旅行商问题。下面我们将详细...
在GIS中,基础算法是解决各种地理问题的关键,其中“凸壳算法”是重要的组成部分。 凸壳算法,又称为格拉姆-施密特(Graham's Scan)或Andrew's Algorithm,是一种在二维平面上找到一组点的最小外包多边形的算法。...
例如,对于三个变量的布尔函数,基本项有8个,分别是000、001、010、011、100、101、110和111。这些基本项通过与运算可以表示所有可能的布尔函数。 2. 主项集构造与化简: - 主项集是由所有可能的基本项组成的集合...
本资源"001排序算法.rar"包含了C语言实现的一些最基础且广泛使用的排序算法,包括冒泡排序、选择排序、归并排序以及快速排序。这些算法都是程序设计的基础,理解它们的工作原理和性能特性对于提升编程技能和解决实际...
(共三卷,只有第一卷收费)光线跟踪算法技术 [美]萨芬著 刘天慧译(清华大学出版社) 2011.zip.001
本资源“操作系统常见算法算法演示”通过FLASH动画的形式,直观地展示了这些算法的工作原理,为学习者提供了生动的教学辅助。 1. **进程调度算法**:操作系统中的进程调度是决定哪个进程获得CPU执行权的关键步骤。...
《妙趣横生的算法》是一本旨在让读者在学习算法的过程中体验到乐趣的书籍,其源代码压缩包包含了书中所有算法实现的详细代码。这些源码是理解算法原理、提高编程技能的重要参考资料,尤其适合计算机科学的学生和对...
这份pdg文件中的章节可能以COV001.PDG、FOW001.PDG等命名,暗示了书中包含不同主题或章节的覆盖和展开。每个.PDG文件代表了一个独立的页面或部分,读者可以通过相应的阅读器逐个打开学习,逐步深入理解计算机算法...
用Netbeans基于Java开发的遗传算法和交互式遗传算法平台,内含源代码,jar包等. 包含了: (1)传统遗传算法在函数优化中的应用,你可以仿照其中的代码加入自己的函数进行优化; (2)交互式遗传算法在服装设计、分形...
(3)较Ver 0.001版,主要改变在于:(a)选择算子不再采用轮盘赌,大多数采用三角选择算子代替。从而去掉适应度函数正负一致性的要求。(b)去掉了match和TGAEyebrow和SAT应用三个内容。(c)修改了乐曲进化前输入曲子...
算法讲解001【入门】学习算法的语言问题以及如何开通gpt4
Matlab卡尔曼滤波器算法实现-shiliang001.m 矢量卡尔曼滤波器算法的实现
《蚁群算法的改进与应用——以Select_for_aca001为例》 蚁群算法,作为一种模拟自然界中蚂蚁寻找食物路径的优化算法,自20世纪90年代提出以来,已在众多领域得到了广泛应用,包括路径规划、组合优化、网络路由等。...
- 运行时间几乎恒定在0.000秒至0.001秒之间,无论问题规模如何变化,这表明MATLAB内部的多项式计算非常高效。 - **算法二至四**(在VS2013中实现): - 随着问题规模n的增长,运行时间逐渐增加。 - 算法三相比...
例如,文中提到的不同参数设置,比如n=100,Pc=0.6,Pm=0.001,表示种群大小为100,交叉率为0.6,变异率为0.001。此外,还有基于模式定理(Schema Theorem)的分析,它阐述了在遗传算法中特定模式(即种群中染色体的...
"基于python的流水车间作业调度算法.zip"文件提供了一系列用于解决这个问题的工具和算法。在这个压缩包中,我们可以找到多种经典的调度算法以及智能算法的实现,它们都是以Python编程语言编写的,这使得它们具有很高...
本文档介绍的“C语言经典算法大全”涉及了多个计算机科学领域的经典算法,这些算法不仅对学习C语言十分有用,而且对理解计算机科学的算法设计与分析也十分重要。以下是对文档中提到的算法知识点的详细解释: 1. ...
蚁群算法(Ant Colony Optimization, ACO)是一种模拟生物界中蚂蚁寻找食物行为的优化算法,由Marco Dorigo在1992年提出。它主要用于解决组合优化问题,如旅行商问题(Traveling Salesman Problem, TSP)、最短路径...
《基于遗传算法的柔性作业车间调度问题探讨》 在当今高度自动化的生产环境中,车间调度问题(Job Shop Scheduling Problem, JSP)是一项至关重要的任务,它涉及到如何有效地分配资源和时间,以优化生产效率和降低...
# CLAHE算法MATLAB代码 对比度受限自适应直方图均衡化算法 该 MATLAB 程序用于对给定图像执行对比度受限自适应直方图均衡化 (CLAHE),写有详细中文注释。 CLAHE 算法可以提高图像... fn_CLAHE('images/001.jpg') ```