冒泡排序
O(n^2)复杂度
for i in range(len(nums)-1):
flag=False
for j in range(0,len(nums)-i-1):
if nums[j] > nums[j+1]:
nums[j],nums[j+1]=nums[j+1],nums[j]
flag=True
if not flag:
return nums
return nums
快速排序
- 在数列之中,选择一个元素作为”基准”(pivot),或者叫比较值。
- 数列中所有元素都和这个基准值进行比较,如果比基准值小就移到基准值的左边,如果比基准值大就移到基准值的右边
- 以基准值左右两边的子列作为新数列,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。
class Solution(object):
def sortArray(self, nums):
"""
:type nums: List[int]
:rtype: List[int]
"""
if len(nums) <= 1:
return nums
mid=nums.pop(len(nums)//2)
left,right=[],[]
for i in range(len(nums)):
if nums[i]<=mid:
left.append(nums[i])
elif nums[i]>mid:
right.append(nums[i])
return self.sortArray(left)+[mid]+self.sortArray(right)