题解 | #排序#

排序

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

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 将给定数组排序
# @param arr int整型一维数组 待排序的数组
# @return int整型一维数组
#
class Solution:
#     # 快排遇到最大递归深度问题,修改为1万
    import sys
    sys.setrecursionlimit(10000)
    def MySort(self , arr: List[int]) -> List[int]:
        # write code here
#         # 冒泡排序(改进版)
#         for i in range(len(arr)-1):
#             # 每次是否交换位置
#             change_flag = 0
#             # 每次都会把最大的放在最后一位
#             for j in range(len(arr)-i-1):
#                 if arr[j] > arr[j+1]:
#                     arr[j], arr[j+1] = arr[j+1], arr[j]
#                     # tmp = arr[j]
#                     # arr[j] = arr[j+1]
#                     # arr[j+1] = tmp
#                     change_flag = 1
#             if not change_flag:
#                 break
#         return arr
#         # 选择排序
#         for i in range(len(arr)):
#             min_index = i
#             for j in range(min_index+1,len(arr)):
#                 if arr[min_index] > arr[j]:
#                     min_index = j
#             if min_index != i:
#                 arr[min_index], arr[i] = arr[i], arr[min_index]
#         return arr
#         # 插入排序
#         for i in range(1, len(arr)):
#             j = i-1
#             cur_val = arr[i]
#             # 当前值与左边一次比对直到找到比自己小的
#             while j>=0 and cur_val < arr[j]:
#                 arr[j+1] = arr[j]
#                 j -= 1
#             # 插入位置比自己小的下标加一
#             arr[j+1] = cur_val
#         return arr
#         # 快速排序
        if not arr:
            return []
        pivot = arr[0]      
        left = self.MySort([num for num in arr[1:] if num < pivot])
        right = self.MySort([num for num in arr[1:] if num >= pivot])
        return left + [pivot] + right

全部评论

相关推荐

07-01 13:37
门头沟学院 Java
steelhead:不是你的问题,这是社会的问题。
点赞 评论 收藏
分享
06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
今天 12:23
点赞 评论 收藏
分享
评论
2
2
分享

创作者周榜

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