第一张图中第一个画波浪线的地方,这句话表述的是不是有问题呢?以第一个元素为基准,那么后面的元素不

论大小都在它的后面,那为什么说把小于等于它的元素移动到该基准的前面呢?... 论大小都在它的后面,那为什么说把小于等于它的元素移动到该基准的前面呢? 展开
 我来答
lugoodboy
2022-09-28 · TA获得超过7.3万个赞
知道大有可为答主
回答量:1.3万
采纳率:86%
帮助的人:6229万
展开全部

它要把顺序表中的元素从小到大排列,然后第一个元素为基准,那么表中元素有两种情况:

  1. 肯定有小于等于第一个元素的;

  2. 肯定有大于第一个元素。

既然从小到大排列,那么当然把小于等于第一个元素的移到前面,把大于第一个元素的移到后面,这样才是从小到大

追答了,没显示,在这儿添加回答:

3 8 2 7 1 5 3 4 6 0

注意到没有?例子中第一个元素3为基准,后面元素中还有一个3

第二张图:

1,0,2,3都是小于等于3;

5,7,4,6,8都是大于3。

因为原来的顺序表只是用一组地址连续的存储单元依次存储数据元素,所以如果要删除某一元素x,就要一个一个的比较是不是等于x,现在这样一做就方便了,因为小于等于x的数都在前面,大于x的数都在后面,以后删除某数就到相应位置找,例如6就到后面找,不必在前面找。

当然程序是讲如何用高效的算法实现,即把小于等于3的都放到前面,大于3的放到后面

追问
但是根据第二张图,不论怎么移动,其他元素都是在第一个元素(基准)的后面,那怎么能说是把小于等于它的元素移动到该基准的前面呢?
追答

顺序表中原来的元素,只是用一组地址连续的存储单元依次存储数据元素:

3 8 2 7 1 5 3 4 6 0

例子中根本就没有大小的顺序,那如果以后要查找表中的某一元素x,那就是要和表中每一个元素进行对比。如果有顺序排列,就简单多了,先和基准比,如果比基准大,那就到后面去找,如果比基准小,那就到前面去找。

第二图第一个元素3为基准:

前面 1,0,2,3都是小于等于3。


后面5,7,4,6,8都是大于3的。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式