第一张图中第一个画波浪线的地方,这句话表述的是不是有问题呢?以第一个元素为基准,那么后面的元素不
1个回答
展开全部
它要把顺序表中的元素从小到大排列,然后第一个元素为基准,那么表中元素有两种情况:
肯定有小于等于第一个元素的;
肯定有大于第一个元素。
既然从小到大排列,那么当然把小于等于第一个元素的移到前面,把大于第一个元素的移到后面,这样才是从小到大。
追答了,没显示,在这儿添加回答:
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的放到后面。
追问
但是根据第二张图,不论怎么移动,其他元素都是在第一个元素(基准)的后面,那怎么能说是把小于等于它的元素移动到该基准的前面呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询