`
shxiao
  • 浏览: 30503 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

算法001

阅读更多

归并排序是分而治之的典型用法,其实现大致有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版人工智能算法合集含示例代码,含遗传算法、粒子群算法、模拟退火、蚁群算法、免疫优化算法、鱼群算法,旅行商问题

    这个压缩包文件提供的资源是一个Python实现的人工智能算法合集,包含了多种优化算法的示例代码,如遗传算法、粒子群算法、模拟退火、蚁群算法、免疫优化算法以及鱼群算法,还涉及到经典的旅行商问题。下面我们将详细...

    GIS基础算法之凸壳算法

    在GIS中,基础算法是解决各种地理问题的关键,其中“凸壳算法”是重要的组成部分。 凸壳算法,又称为格拉姆-施密特(Graham's Scan)或Andrew's Algorithm,是一种在二维平面上找到一组点的最小外包多边形的算法。...

    QM算法C++实现

    例如,对于三个变量的布尔函数,基本项有8个,分别是000、001、010、011、100、101、110和111。这些基本项通过与运算可以表示所有可能的布尔函数。 2. 主项集构造与化简: - 主项集是由所有可能的基本项组成的集合...

    001排序算法.rar

    本资源"001排序算法.rar"包含了C语言实现的一些最基础且广泛使用的排序算法,包括冒泡排序、选择排序、归并排序以及快速排序。这些算法都是程序设计的基础,理解它们的工作原理和性能特性对于提升编程技能和解决实际...

    光线跟踪算法技术 001

    (共三卷,只有第一卷收费)光线跟踪算法技术 [美]萨芬著 刘天慧译(清华大学出版社) 2011.zip.001

    操作系统常见算法算法演示

    本资源“操作系统常见算法算法演示”通过FLASH动画的形式,直观地展示了这些算法的工作原理,为学习者提供了生动的教学辅助。 1. **进程调度算法**:操作系统中的进程调度是决定哪个进程获得CPU执行权的关键步骤。...

    《妙趣横生的算法》源代码

    《妙趣横生的算法》是一本旨在让读者在学习算法的过程中体验到乐趣的书籍,其源代码压缩包包含了书中所有算法实现的详细代码。这些源码是理解算法原理、提高编程技能的重要参考资料,尤其适合计算机科学的学生和对...

    pdg-苏德富-计算机算法设计与分析.rar

    这份pdg文件中的章节可能以COV001.PDG、FOW001.PDG等命名,暗示了书中包含不同主题或章节的覆盖和展开。每个.PDG文件代表了一个独立的页面或部分,读者可以通过相应的阅读器逐个打开学习,逐步深入理解计算机算法...

    遗传算法-交互式遗传算法 Ver 0.001

    用Netbeans基于Java开发的遗传算法和交互式遗传算法平台,内含源代码,jar包等. 包含了: (1)传统遗传算法在函数优化中的应用,你可以仿照其中的代码加入自己的函数进行优化; (2)交互式遗传算法在服装设计、分形...

    遗传算法、交互式遗传算法Ver 0.002

    (3)较Ver 0.001版,主要改变在于:(a)选择算子不再采用轮盘赌,大多数采用三角选择算子代替。从而去掉适应度函数正负一致性的要求。(b)去掉了match和TGAEyebrow和SAT应用三个内容。(c)修改了乐曲进化前输入曲子...

    算法讲解001【入门】学习算法的语言问题以及如何开通gpt4.pptx

    算法讲解001【入门】学习算法的语言问题以及如何开通gpt4

    Matlab卡尔曼滤波器算法实现-shiliang001.m

    Matlab卡尔曼滤波器算法实现-shiliang001.m 矢量卡尔曼滤波器算法的实现

    Select_for_aca001_改进蚁群_Select_for_aca_算法_搜索算法_蚁群搜索_

    《蚁群算法的改进与应用——以Select_for_aca001为例》 蚁群算法,作为一种模拟自然界中蚂蚁寻找食物路径的优化算法,自20世纪90年代提出以来,已在众多领域得到了广泛应用,包括路径规划、组合优化、网络路由等。...

    算法设计技术与方法

    - 运行时间几乎恒定在0.000秒至0.001秒之间,无论问题规模如何变化,这表明MATLAB内部的多项式计算非常高效。 - **算法二至四**(在VS2013中实现): - 随着问题规模n的增长,运行时间逐渐增加。 - 算法三相比...

    遗传算法_综述_.pdf

    例如,文中提到的不同参数设置,比如n=100,Pc=0.6,Pm=0.001,表示种群大小为100,交叉率为0.6,变异率为0.001。此外,还有基于模式定理(Schema Theorem)的分析,它阐述了在遗传算法中特定模式(即种群中染色体的...

    基于python的流水车间作业调度算法.zip

    "基于python的流水车间作业调度算法.zip"文件提供了一系列用于解决这个问题的工具和算法。在这个压缩包中,我们可以找到多种经典的调度算法以及智能算法的实现,它们都是以Python编程语言编写的,这使得它们具有很高...

    C语言经典算法大全

    本文档介绍的“C语言经典算法大全”涉及了多个计算机科学领域的经典算法,这些算法不仅对学习C语言十分有用,而且对理解计算机科学的算法设计与分析也十分重要。以下是对文档中提到的算法知识点的详细解释: 1. ...

    蚁群算法相关论文

    蚁群算法(Ant Colony Optimization, ACO)是一种模拟生物界中蚂蚁寻找食物行为的优化算法,由Marco Dorigo在1992年提出。它主要用于解决组合优化问题,如旅行商问题(Traveling Salesman Problem, TSP)、最短路径...

    遗传算法GA车间调度Matlab代码.rar

    《基于遗传算法的柔性作业车间调度问题探讨》 在当今高度自动化的生产环境中,车间调度问题(Job Shop Scheduling Problem, JSP)是一项至关重要的任务,它涉及到如何有效地分配资源和时间,以优化生产效率和降低...

    CLAHE算法MATLAB代码 对比度受限自适应直方图均衡化算法

    # CLAHE算法MATLAB代码 对比度受限自适应直方图均衡化算法 该 MATLAB 程序用于对给定图像执行对比度受限自适应直方图均衡化 (CLAHE),写有详细中文注释。 CLAHE 算法可以提高图像... fn_CLAHE('images/001.jpg') ```

Global site tag (gtag.js) - Google Analytics