问题描述
我一直在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 (将#修改为@)