要求将算法1-6设计为3. 3. 4节定义的顺序表Dy

要求将算法1-6设计为3. 3. 4节定义的顺序表DynamicArrayList类的方法。

6.设计算法,将有序顺序表中position位置的元素值替换为item,要求替换后的表仍保持有序。

答案
class DynamicArrayList:
    def __init__(self):
        self.data = []

    def replace_ordered(self, position, item):
        """有序顺序表,替换position位置元素为item,保持有序"""
        n = len(self.data)
        # 边界检查
        if position<0 or position>=n:
            return

        # 1. 删除position处旧元素
        for i in range(position, n-1):
            self.data[i] = self.data[i+1]
        self.data.pop()

        # 2. 查找item应该插入的下标
        insert_idx = 0
        while insert_idx < len(self.data) and self.data[insert_idx] < item:
            insert_idx += 1

        # 3. 后移元素,插入item
        self.data.append(0)
        for i in range(len(self.data)-1, insert_idx, -1):
            self.data[i] = self.data[i-1]
        self.data[insert_idx] = item

题目信息

题号:8230
题型:简答题
知识点:Python
难度:普通