题解 | #排序#

排序

http://www.nowcoder.com/practice/2baf799ea0594abd974d37139de27896

class Solution: def MySort(self , arr: List[int]) -> List[int]:

1. 冒泡排序
        for i in range(len(arr)-1):
             for j in range(i+1,len(arr)):
                 if arr[i] > arr[j]:
                     arr[i],arr[j] = arr[j],arr[i]
        return arr
2. 快速排序
         def quick_sort(start,end,arr):
             if start >= end:return
             left,right = start,end
             ref = arr[(left+right) // 2]
             while left <= right:
                 while left <= right and arr[left] < ref:
                     left += 1
                 while left <= right and arr[right] > ref:
                     right -= 1
                 if left <= right:
                     arr[left],arr[right] = arr[right],arr[left]
                     left += 1
                     right -=1
             quick_sort(start, right, arr)
             quick_sort(left, end, arr)
 		quick_sort(0, len(arr)-1, arr)
        return arr
 3. 选择排序
          
          for i in range(len(arr)-1):
                min_index = i
                for j in range(i+1,len(arr)):
                    if arr[j] < arr[min_index]:
                        min_index = j
                arr[i],arr[min_index] = arr[min_index],arr[i]
          return arr
全部评论

相关推荐

评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务