牛客题霸 排序

题目描述

给定一个数组,请你编写一个函数,返回该数组排序后的形式。

 

示例1

输入

[5,2,3,1,4]

返回值

[1,2,3,4,5]

 

示例2

输入

[5,1,6,2,5]

返回值

[1,2,5,5,6]

 

备注:

数组的长度不大于100000,数组中每个数的绝对值不超过10^9109

 

解题思路:

快速排序。

 

Python代码:

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
# 将给定数组排序
# @param arr int整型一维数组 待排序的数组
# @return int整型一维数组
#
class Solution:
    def MySort(self , arr ):
        # write code here
        def sort_quick(arr, left, right):
            if left >= right:
                return arr
            i = left
            j = right
            target = arr[i]
            while i < j:
                while i < j and arr[j] >= target:
                    j -= 1
                arr[i] = arr[j]
                while i < j and arr[i] <= target:
                    i += 1
                arr[j] = arr[i]
            arr[j] = target
            sort_quick(arr, left, i-1)
            sort_quick(arr, i+1, right)
            return arr
        return sort_quick(arr, 0, len(arr)-1)
                    

 

你可能感兴趣的:(数据结构与算法,快速排序,数据结构,leetcode)