Python quick_sort

def quick_sort(arr):
  if len(arr) <=1:
     return arr
  pivot = arr[0]
  left = []
  right = []
  for num in arr[1:]:
     if num <= pivot:
        left.append(num)
     else:
        right.append(num)
   return quick_sort(left) + [pivot] + quick_sort(right)

source = [1,5,3]
target = [1,3,5]
## list.eq 包含相同的元素,并且顺序相同
print(quick_sort(source) == target)

AO – 01

pivot_index = random.randint(0, len(arr))
pivot = arr[pivot_index]

for i,num in enumerate(arr):
   if pivot_index == i:
     continue

AO – 02

def insert_sort(arr):
   for i in range(1,len(arr)):
       key = arr[i]
       j = i-1
       while j>=0 and key < arr[j]:
          arr[j+1] = arr[j]
          j-=1
       arr[j+1] = key
    return arr

def quick_sort(arr):
  if len(arr) <=1:
     return arr
  if len(arr) < 10:
     return insert_sort(arr)

Leave a Reply