import random
class Solution:
def sortArray(self, nums: List[int]) -> List[int]:
def quick(left, right):
if left>right:
return
k = random.randint(left, right)
nums[left], nums[k] = nums[k], nums[left]
pivot = nums[left]
i, j = left+1, right
while True:
while i<=j and nums[i]<pivot:
i += 1
while i<=j and nums[j]>pivot:
j -= 1
if i>j:
break
nums[i], nums[j] = nums[j], nums[i]
i += 1
j -= 1
nums[left], nums[j] = nums[j], nums[left]
quick(left, j-1)
quick(j+1, right)
quick(0, len(nums)-1)
return nums
插入排序
class Solution:
def insertion_sort(self, nums: List[int]) -> List[int]:
n = len(nums)
if n == 0:
return nums
for i in range(n-1):
cur = nums[i+1]
pre_index = i
while pre_index >=0 and cur<nums[pre_index]:
nums[pre_index+1] = nums[pre_index]
pre_index -= 1
nums[pre_index+1] = cur
return nums
if __name__ == '__main__':
import sys
data = sys.stdin.read().split()
nums = list(map(int, data))
result = insertion_sort(nums)
print(' '.join(map(str, result)))
冒泡
def bubble_sort_optimized(arr):
n = len(arr)
for i in range(n):
swapped = False
for j in range(n - 1 - i):
if arr[j + 1] < arr[j]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
swapped = True
if not swapped:
break
return arr
if __name__ == '__main__':
import sys
data = sys.stdin.read().split()
nums = list(map(int, data))
result = bubble_sort_optimized(nums)
print(' '.join(map(str, result)))