class Sorting。
def __init__(self, arr):
self.arr = arr
n = len(arr)
def quicksort(self,arr)。
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
del arr[0]
items_greater = []
items_lower = []
for item in arr:
if item > pivot:
items_greater.append(item)
else:
items_lower.append(item)
return sor.quicksort(items_lower) [pivot] sor.quicksort(items_greater)
arr = [4,3, 2, 1,-5,-89, 10]
n = len(arr)
sor = Sorting(arr)
print(sor.quicksort(arr))
輸出。[-89, -5, 1, 2, 3, 4, 10]
我必須提供兩次引數arr,一次在Sorting(arr)中,另一次在quicksort(arr)中,我怎樣才能只用arr重寫代碼呢?
uj5u.com熱心網友回復: 讓
uj5u.com熱心網友回復: 只要移除 與之前的輸出相同。
標籤: 上一篇:訪問模型領域內的模型實體
arr成為一個可選的引數,當它沒有被提供時使用self.arr。你只需要在遞回呼叫中明確地傳遞它。class Sorting。
def __init__(self, arr):
self.arr = arr
n = len(arr)
def quicksort(self, arr = None):
if arr is None:
arr = self.arr
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
del arr[0]
items_greater = []
items_lower = []
for item in arr:
if item > pivot:
items_greater.append(item)
else:
items_lower.append(item)
return sor.quicksort(items_lower) [pivot] sor.quicksort(items_greater)
__init__()方法:class Sorting。
def quicksort(self,arr)。
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
del arr[0]
items_greater = []
items_lower = []
for item in arr:
if item > pivot:
items_greater.append(item)
else:
items_lower.append(item)
return sor.quicksort(items_lower) [pivot] sor.quicksort(items_greater)
arr = [4,3, 2, 1,-5,-89, 10]
sor = Sorting()
print(sor.quicksort(arr))
