折半插入排序比较次数时间复杂度

本文详细探讨了折半插入排序在插入第N个数时的时间复杂度,通过建立类似判定树的二叉树模型,展示了比较次数最多不超过二叉树的深度,即log2(N-1)+1。通过实例解释了比较过程,并指出总时间复杂度为O(nlog2(n))。

折半插入排序比较次数时间复杂度

折半插入排序 — 插入第N个数时比较次数时间复杂度O(nlog2(n)):

根据算法思想有以下的推论:

每个数插入最多走了一个判定树的深度
即log2(n-1)(取最少正整数)+1

解析:在有序数组中插入的数每次比较都是与Mid(Mid指向待比较数组中的中间位置)所指向的数进行对比,先将有序数组转化成类似判定树的二叉树形式,可以得出比较的次数最多只能是这一棵二叉树的深度。

示例:

假设一组有序数组:1 2 3 4 5 6 7 8 9 (注意已经选过的Mid不再重选)

第一次Mid:
low=1,high=9,所以Mid=(low+high)/2=5
        建立二叉树的根
             ⑤
第二次Mid:5的左边low=1 high=4 Mid=(low+high)/2=25的右边low=6 high=9 Mi
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值