算法——分治法

分治法:
a^n计算的时间复杂度O(logn)
在这里插入图片描述
斐波那契数列Fn的时间复杂度O(logn):
在这里插入图片描述

快速排序算法:
1:分为两个n/2子问题的情况:T(n)=2*T(n/2)+n O(nlogn)
2:分为一个1/10,一个9/10的情况:T(n)=T(1n/10)+T(9n/10)+n.
3:分为1和n-1:T(n)=T(n-1)+n

找最大值和最小值:两两分组比较,再依次比较
在这里插入图片描述
找第二大的值:锦标赛法
W(n)=n-1+n-2=2n-3
锦标赛法:两两分组,选出最大的元素进入下一轮,下一轮中两两分组选出最大的值,直到产生冠军。比较(n-1)次。
又因为第二大元素必是被冠军淘汰,所以在比较的同时需记录被其淘汰的元素。在被冠军淘汰的元素中选出最大值,即第二大元素。

在这里插入图片描述
找第k大的元素:选择算法Select,时间复杂度O(n)
或者快速选择算法【O(n)】
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值