麻省理工大学公开课学习笔记【1、算法分析】

本文探讨了算法分析中性能和内存的重要性,特别是在排序问题上。通过插入排序算法的实例,详细讲解了其核心思想及实现过程,强调了算法和性能在程序设计中的基础地位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

算法分析,是关于电脑程序性能和内存的问题,特别关注性能;

课程中让大家去思考什么比性能更加重要:安全、可扩展性、用户友好等等,这些都比性能更加重要。

如果算法和性能都不重要,为什么要学习算法,为什么关注性能?

因为性能的好与坏直接决定是否可行;算法和性能是程序所有的基础,处于最底层;

课程中引入一个很常见的问题进行分析:排序!

举例:序列<a_{1},a_{2},a_{3}, ... , a_{n}>重新排列得到<a_{1}^{'},a_{2}^{'},a_{3}^{'}, ... , a_{n}^{'}>, 使得a_{1}^{'}\leqa_{2}^{'},\leqa_{3}^{'}\leq, ... ,\leq a_{n}^{'}

这里直接描述了一直算法:插入排序;伪代码如下:

INSERTION-SORT(A,n)
    for j <-- 2 to n
        do key <-- A[j]
            i < j - 1
            while i > 0 and a[i] > key
               do A[i+1] <-- A[i]
                    i <-- i-1
                A[i+1] = key

插入排序的核心思路为:A[j](Key)左边的序列均为排列好的,只需要找到key的插入位置即可,示例图如下:

举例模拟插入排序过程:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值