1. 程式人生 > 其它 >牛客題霸 排序

牛客題霸 排序

技術標籤:資料結構與演算法快速排序資料結構leetcode

題目描述

給定一個數組,請你編寫一個函式,返回該陣列排序後的形式。

示例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)