استاد این قطعه کد چرا خروجی نمیده؟
def partition(array, begin, end):
pivot_idx = begin
for i in xrange(begin+1, end+1):
if array[i] <= array[begin]:
pivot_idx += 1
array[i], array[pivot_idx] = array[pivot_idx], array[i]
array[pivot_idx], array[begin] = array[begin], array[pivot_idx]
return pivot_idx
def quick_sort_recursion(array, begin, end):
if begin >= end:
return
pivot_idx = partition(array, begin, end)
quick_sort_recursion(array, begin, pivot_idx-1)
quick_sort_recursion(array, pivot_idx+1, end)
def quick_sort(array, begin=0, end=None):
if end is None:
end = len(array) - 1
return quick_sort_recursion(array, begin, end)
با سلام شما تابع های تعریفی را فراخوانی نکرده اید
خب ببنید این سوال درمورد مرتب سازی سریع از طریق محور گیری یه عدد بوده
الان دقیقن نمیدونم کودوم تابع باید فراخوانی کنم
چون هر کار میکنم و هر کودوم فراخوانی میکنم اررور میده
کد شما چند اشکال دارد
1- شما از داده int ایندکس خواستید
def partition(array, begin, end):
pivot_idx = begin
for i in range(begin+1, end+1):
if array[i] <= array[begin]:
pivot_idx += 1
array[i], array[pivot_idx] = array[pivot_idx], array[i]
array[pivot_idx], array[begin] = array[begin], array[pivot_idx]
return pivot_idx
def quick_sort_recursion(array, begin, end):
pivot_idx = begin
if begin >= end:
pivot_idx = partition(array, begin, end)
qsr_2 =quick_sort_recursion(array, begin, pivot_idx-1)
qsr =quick_sort_recursion(array, pivot_idx+1, end)
return pivot_idx,qsr,qsr_2
def quick_sort(array, begin=0, end=None):
if end is None:
end = len(array) - 1
return quick_sort_recursion(array, begin, end)
partition('2','3','4')
quick_sort('1','7','3')
quick_sort_recursion('2','4','6')
حالت کمی اصلاح شده