首页 > 试题广场 >

排序

[编程题]排序
  • 热度指数:311849 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个长度为 n 的数组,请你编写一个函数,返回该数组按升序排序后的结果。

数据范围: ,数组中每个元素都满足
要求:时间复杂度 ,空间复杂度
进阶:时间复杂度 ,空间复杂度

注:本题数据范围允许绝大部分排序算法,请尝试多种排序算法的实现。
示例1

输入

[5,2,3,1,4]

输出

[1,2,3,4,5]
示例2

输入

[5,1,6,2,5]

输出

[1,2,5,5,6]
class Solution:
    def MySort(self , arr: List[int]) -> List[int]:
        # write code here

        def partition(arr,left,right):
            tmp = arr[left]
            while left<right and arr[right]>tmp:
                right-=1
            arr[left] = arr[right]
            while left<right and arr[left] < tmp:
                left+=1
            arr[right]=arr[left]
               
            arr[left] =tmp
            return left
        def quick_sort(arr,left,right):
            if left < right:
                mid = partition(arr,left,right)
                quick_sort(arr,left,mid-1)
                quick_sort(arr,mid+1,right)
   
        quick_sort(arr,0,len(arr)-1)
        return arr
发表于 2023-08-28 20:57:50 回复(0)
class Solution:
    def MySort(self , arr: List[int]) -> List[int]:
        # write code here
        for i in range(0,len(arr)-1):
            for j in range(0,len(arr)-i-1):
                if arr[j]>arr[j+1]:
                    arr[j],arr[j+1]=arr[j+1],arr[j]
        return arr

发表于 2022-10-28 16:41:37 回复(0)
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 将给定数组排序
# @param arr int整型一维数组 待排序的数组
# @return int整型一维数组
#
class Solution:
    def MySort(selfarr: List[int]) -> List[int]:
        # write code here
        n = len(arr)

        if n<=1:
            return arr
        baseline = arr[0]
        left = [arr[i] for i in range(1, n) if arr[i] < baseline]
        right = [arr[i] for i in range(1, n) if arr[i] >= baseline]
        return self.MySort(left) + [baseline] + self.MySort(right)
发表于 2022-10-17 22:18:31 回复(0)
# 自创的堆排序,虽然没啥毛病但总觉得怪怪的,感觉就跟用了sort()一样作弊
import heapq
def heap_sort(arr):
    heap = []
    for num in arr:
        heap.append(num)
    heapq.heapify(heap)  # python默认为小根堆
    res = []
    for _ in range(len(arr)):
        res.append(heapq.heappop(heap))
    return res

发表于 2021-09-13 21:58:49 回复(0)
冒泡排序:
class Solution:
    def MySort(self , arr ):
        # write code here
        n = len(arr)
        for i in range(n):
            
            for j in range(0, n-i-1):
                if arr[j] > arr[j+1]:
                    arr[j], arr[j+1] = arr[j+1], arr[j]
        return arr
class Solution:
    def MySort(self , arr ):
        # write code here
        n = len(arr)
        for i in range(n):
            
            for j in range(1, n-i):
                if arr[j-1] > arr[j]:
                    arr[j-1], arr[j] = arr[j], arr[j-1]
        return arr



发表于 2021-09-04 23:02:18 回复(2)
class solution:
    def Mysort(self,arr):
        return sort(arr)
利用语言的特性
发表于 2021-08-22 11:56:06 回复(9)