插入排序与合并排序

昨天是9月1号,我也要开始准备找工作了,初步明确了自己的目标以后,打算一边学习算法导论,一边刷leecode.
算法导论的第一章用两种排序算法:插入排序与合并排序介绍算法的框架
1.插入排序算法
①输入为一个数组A【1,n】
②算法是在数组A内部进行重新排序的,不需要申请多余的数组空间
③算法过程:
初始:数组左边的第一个数字;
保持:之后数组的元素依次插入到左边已经排好序的数组中;
终止:当数组的最后一个元素插入到左边数组时,循环终止
④算法的复杂度
在平时的算法评估中,应该是算法的最坏情况运行时间,与平均情况是比较关键的
插入排序算法的最差运行时间为O(n*n)
2.合并排序算法
①合并排序输入也为一个数组
②合并排序的关键在于合并两个已经排好序的数组,合并过程是不断的对比两个数组的元素,相对较小的元素从数组里面取出,因此,它的运行时间是固定的,为O(n)。在书上,我看见多了一个哨兵排,猜测是牺牲一个位置,换取不需要重复的检测数组是否已经为null.
③该排序算法首先将数组不断的分解,直至每一个最小单元只有一个元素,然后从最小单元开始逐渐合并,因此该算法可以采用递归方法实现
④算法的复杂度分析算法的运行时间为O(N*logN);
3.分治法
①分解,将原问题分解为一系列的子问题;
②解决,递归的解各个子问题,如果子问题足够小,则直接求解(递归结束的标志);
③合并,将子问题的结果可以合并到原问题的解
4.循环不变式---检验循环的正确性
①初始化,循环的第一轮迭代开始前,是正确的;
②保持,如果循环的某一次迭代开始前,它是正确的,那么下一次迭代开始之前也应该保持正确;
③终止,循环结束,它表明算法是正确的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值