请选择 进入手机版 | 继续访问电脑版
查看: 1248|回复: 0

【算法分享】算法的基础

[复制链接]

  离线 

已抛锚 成长值: 850

  • TA的每日心情
    慵懒
    2020-6-24 10:54
  • 签到天数: 78 天

    [LV.6]常住居民II

    350

    主题

    406

    帖子

    2533

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    2533
    发表于 2020-3-22 10:57:45 | 显示全部楼层 |阅读模式
    一种算法是一步描述如何的方式,总是给人一个正确的答案解决问题的步骤。当针对一个特定问题有多种算法时(常常有!),最好的算法通常是最快解决该问题的算法。

    作为计算机程序员,我们一直在使用算法,无论它是用于解决常见问题(例如对数组进行排序)的现有算法,还是它是程序唯一的全新算法。通过了解算法,我们可以对要使用的现有算法做出更好的决策,并学习如何制作正确且有效的新算法。



    一个算法由三个基本构件组成:排序,选择和迭代。

    排序:算法是一个逐步的过程,这些步骤的顺序对于确保算法的正确性至关重要。

    这是一种将单词翻译成Pig Latin的算法,例如从“ pig”到“ ig-pay”:
    1. Append "-".
    2. Append first letter
    3. Append "ay"
    4. Remove first letter




    选择:算法可以使用选择来确定基于布尔表达式执行的一组不同的步骤。
    这是用于Pig Latin的改进算法,该算法处理以元音开头的单词,从而使“鸡蛋”变为“鸡蛋-yay”,而不是不可发音的“ ggs-

    eay”:
    1. Append "-"
    2. Store first letter
    3. If first letter is vowel:
        a. Append "yay"
    4. Otherwise:
        a. Append first letter
        b. Append "ay"
        c. Remove first letter



    迭代:算法通常使用重复执行步骤一定次数或直到满足特定条件为止。
    我们可以将迭代添加到先前的算法中,以翻译完整的短语,从而使“花生酱和果冻”成为“花生-吃完了,而-yay-elly-jay”:

    1. Store list of words
    2. For each word in words:
        a. Append hyphen
        b. If first letter is vowel:
            i. Append "yay"
        c. Otherwise:
            i. Append first letter
            ii. Append "ay"
            iii. Remove first letter




    通过结合顺序,选择和迭代,我们成功地提出了Pig Latin翻译的算法。


    温馨提示:
    1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
    2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
    3、根据二○○二年一月一日《计算机软件保护条例》规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!鉴于此,也希望大家按此说明研究软件!谢谢
    4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
    5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
    6、本站所有资源来自互联网,版权归原作者所有,所有资源仅供于学习、交流研究,请于下载24小时之后删除!
    7、当您在浏览本站时,发现有您自己创作的原创资源时侵犯了您的合法资源时,请您及时联系管理员,邮箱:2550721739@qq.com,我们会及时处理!
    使用 高级模式(可批量传图、插入视频等)
    您需要登录后才可以回帖 登录 | 立即注册