2026年数据结构上机试题及答案
一、线性表操作
题目:设计一个算法,将顺序表L中所有小于表头元素的整数放在前半部分,大于等于表头元素的整数放在后半部分,要求算法时间复杂度为O(n),空间复杂度为O(1)。
例如:原顺序表为(5,3,8,1,4,6,2,7),表头元素为5。处理后的一种可能结果为(2,3,1,4,5,6,8,7)。(注意:5的位置可以变动,只要满足前小后大即可)
答案:
核心思路:采用类似快速排序划分的思想,但不完全等同于快速排序的一次划分,因为表头元素(枢轴)本身的位置可以移动。使用两个指针(或索引)`i`和`j`,`i`从第二个元素开始向右扫
原创力文档

文档评论(0)