使用插入排序的Python程序对类中的数组列表进行排序

问题描述

我一直在python 3中使用该程序进行挣扎,该程序使用插入排序对数组列表中的元素进行排序。该函数应仅对数组列表中的元素排序,而不对整个inArray排序。 到目前为止,这是我的代码。输出为无。我真的很困惑。我必须使用类,并且只能修改sort(self)函数

class ArrayList:
    def __init__(self):
        self.inArray = [0 for i in range(10)]
        self.count = 0
        
    def get(self,i):
        return self.inArray[i]

    def set(self,i,e):
        self.inArray[i] = e

    def length(self):
        return self.count

    def append(self,e):
        self.inArray[self.count] = e
        self.count += 1
        if len(self.inArray) == self.count:
            self._resizeUp()     # resize array if reached capacity

    def insert(self,e):
        for j in range(self.count,-1):
            self.inArray[j] = self.inArray[j-1]
        self.inArray[i] = e
        self.count += 1
        if len(self.inArray) == self.count:
            self._resizeUp()     # resize array if reached capacity

    def remove(self,i):
        self.count = self.count - 1
        val = self.inArray[i]
        for j in range(i,self.count):
            self.inArray[j] = self.inArray[j+1]
        return val
    
    def __str__(self):
        return str(self.inArray[:self.count])

    def _resizeUp(self):
        newArray = [0 for i in range(2*len(self.inArray))]
        for j in range(len(self.inArray)):
            newArray[j] = self.inArray[j]
        self.inArray = newArray

    def sort(self):
        for i in range(1,len(self.inArray)):
            key = self.inArray[i]
            j = i-1
        while j >=0 and key < self.inArray[j] :
            self.inArray[j+1] = self.inArray[j]
            j -= 1
        self.inArray[j+1] = key
        
    
ls = ArrayList()
for i in range(5,-1): 
    ls.append(i)
print(ls.sort())

提前谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)