算法分析是理论研究:
    于计算机程序性能与资源利用的研究
 
排序问题:
 
1.插入排序
    ·伪代码表示插入排序:
 
为代码解释:构造数组A,设置外部循环条件,j从2到n递增,内部循环条件开始于j-1并递减至0;
 
理解:我们找到j,数组A中的j位的值和前面的“常量”(已排序好的)相比,找到此时j位的值适合的位置,再令j++比较下一位。
 
    ·例子:8,2,4,9,3,6
 
 
·运行时间:
    1.输入本身可能存在的时间损失:最坏->逆序?
    2.输入规模的损失:将依输入的规模将其参数化,因此把运行时间看作待排列数据规模的函数(审视算法)
    3.运行时间的上限;
 
 
·算法评估
 
1.最大运行时间:
    最坏情况分析。
    在输入规模为n时得到的最长程序运行时间。
2.期望时间:
    输入规模n下所有可能输入的期望时间,是时间的期望值;
    这应该是每种输入的运行时间乘以那种输入出现的概率,是一种加权平均;既然如此,需要每种输入的概率->需要作出有关输入的统计分布的假设
 
    最常见假设:等可能出现->平均分布
3.最好情况分析:
    a cheat.
 
 
算法的大局观(渐进分析):
1.忽略依赖于机器的常量。
2.不是去关注实际运行时间而关注运行时间的增长
 
 
 
2.归并排序(递归):
 
三步:
 
 
 
 
 
 
posted on 2022-08-10 11:23  Jolyne123  阅读(108)  评论(0编辑  收藏  举报