排序算法总结

merge:

class Solution(object):
    def sortArray(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        if len(nums) < 2:
            return nums
        mid = len(nums) // 2
        left = self.sortArray(nums[: mid])
        right = self.sortArray(nums[mid: ])
        return self.merge_sort(left, right)
    def merge_sort(self, left, right):
        startleft = 0
        startright = 0
        res = []
        while startleft < len(left) and  startright < len(right):
            if left[startleft] < right[startright]:
                res.append(left[startleft])
                startleft += 1
            else:
                res.append(right[startright])
                startright += 1
        res += left[startleft:]
        res += right[startright:]
        return res

quick sort:

    def quicksort(self, nums):
            if len(nums) < 2:
                return nums
            base = nums[0]
            less = [i for i in nums[1:] if i < base]
            more = [i for i in nums[1:] if i >= base]
            return self.quicksort(less) + [base] + self.quicksort(more)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 常用排序算法 排序算法非常的多,在学习数据结构和算法时肯定都会学习到关于排序的算法,虽然现在高级语言都自带内置的排...
    _kkk阅读 402评论 0 2
  • 简介:本文主要总结了以下几个排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序...
    AlexanderJLiu阅读 961评论 2 29
  • 排序算法的时间复杂度 排序的分类 1.冒泡排序(Bubble Sort) 好的,开始总结第一个排序算法,冒泡排序。...
    冬_84fe阅读 388评论 1 2
  • 大写的转 目录 [冒泡排序][鸡尾酒排序] [选择排序] [插入排序][二分插入排序][希尔排序] [归并排序] ...
    Solang阅读 1,819评论 0 16
  • 排序算法是非常常见也非常基础的算法,以至于大部分情况下它们都被集成到了语言的辅助库中。排序算法虽然已经可以很方便的...
    ycwang522阅读 1,679评论 0 6