算法-有序序列中运用“压缩”思想

本文探讨如何在处理海量有序序列时,利用“压缩”思想简化问题。通过二分查找法,将序列压缩为一个或几个关键数据点,以此来定位插入、查找或删除操作,降低复杂性,提高效率。示例中,通过中点数据判断插入元素的位置,实现了序列的高效处理。
摘要由CSDN通过智能技术生成

我们经常遇到在一个有序序列中进行一系列的操作,比如查找某个元素,插入某个元素,删除某个元素等,这里的有序序列,可能是线性的一对一的序列,也可能是二叉树的一对多序列,那么在面对一个海量的有序序列时,海量数据往往会压迫到我们的神经,让我们沉在数据大海里。

然后有没有一种更好的方法,让我们有针对性地分析这个问题,而不是沉在海量数据中呢? 我们利用有序序列的特点,何不尝试用根据问题的性质,将海量压缩为1个单元数据呢?

如果一个序列是这样的

   int sorted[10000] =  {1  4  5  8 12 111  114  115  118 122 2111  2114  2115  2118 2122 
    2221  2224  2225  2228 2312 2241  2514  2615  2718 2822 2911  
    3114  3115  3118 3222 4221  4224  4225  4228 4312 4641  4714  4815  
    4918 4922 5011  };

现在要插入元素190,请问怎么分析这个问题。我们计划用二分查找,查找一个插入元素的合适的位置,然后放入元素。二分查找设计到两个端点,一个中点,并且原数据是有序的。所以,我们直接压缩为1个数据,这个数据时中点数据,

n

此时的中点位置为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值