首页 > 其他分享 >排序

排序

时间:2023-09-25 22:01:28浏览次数:31  
标签:复杂度 logN 时间 空间 N2 排序

排序算法 哪些是稳定的排序算法,哪些是不稳定的

稳定的:

直接插入排序:最坏情况是逆序,时间复杂度是O(N2),最好情况是插入的都是顺序,时间复杂度O(N),空间复杂度O(1)

冒泡排序:时间复杂度O(N2),空间复杂度O(1)

计数排序:时间复杂度O(N+Range),空间复杂度O(range)

不稳定:

希尔排序:时间复杂度O(N1.3),空间复杂度O(1)

直接选择排序:时间复杂度O(N2),空间复杂度O(1)

堆排序:时间复杂度O(N*logN),空间复杂度O(1)

快速排序:时间复杂度O(N*logN),空间复杂度O(logN)

标签:复杂度,logN,时间,空间,N2,排序
From: https://blog.51cto.com/u_15562309/7600000

相关文章

  • 如何实现一个数组按照另外一个数组的顺序进行排序?
    数组arr1按照arr2的顺序展示,如何实现:一、简单类型数组letarr1=[1,2,3,4,5] letarr2=[5,3,2,4,1]arr1.sort((prev,next)=>{ returnarr2.indexOf(prev)-arr2.indexOf(next)})console.log(arr1)//[5,3,2,4,1]二、复杂类型数组letarr1=[{......
  • lambda HashMap 排序
    目录TreeMaplambdacomparingByKey示例代码TreeMap按key排序生成map可以有TreeMap完成,TreeMap可以按key的自然顺序排序(Comparable实现)lambdacomparingByKey使用lambda也可以很方便的对map排序Map.Entry.comparingByKey()按key排序的ComparatorMap.Entry.comparingBy......
  • 快速排序/选择算法
    ......
  • python 排序
    在您的代码中,排序函数中的`elem`是一个未定义的变量,因此会导致`NameError`错误。在Python中,`elem`不是一个内置变量,您需要使用实际的变量或表达式来代替。从您提供的数据和示例代码来看,您似乎希望按照每个子列表中的第一个元素进行排序。为了修复错误,您可以使用lambda函......
  • 轻松掌握冒泡排序算法,值得收藏
    冒泡排序(BubbleSort)是一种简单的排序算法,其基本思想是多次遍历待排序的数组,每次比较相邻的两个元素,如果它们的顺序不正确就交换它们,直到整个数组有序为止。冒泡排序的基本步骤如下:从数组的第一个元素开始,比较相邻的两个元素,如果它们的顺序不正确就交换它们。重复步骤1,直到遍历......
  • 简单而经典:Java中的冒泡排序算法详解
    当谈到简单的排序算法时,冒泡排序(BubbleSort)通常是其中之一。虽然它不是最高效的排序算法之一,但它的简单性和易于理解使它成为学习排序算法的良好起点。在本文中,我们将详细介绍Java中的冒泡排序。冒泡排序的基本原理冒泡排序(BubbleSort)是一种简单的排序算法,它通过多次遍历待排序的......
  • 【算法】归并排序算法
    归并排序归并排序的思想归并排序运用了典型的分治策略,是一种稳定的排序算法,其时间复杂度为\(O(nlogn)\),空间复杂度为\(O(n)\)。分治的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。......
  • PostgreSQL排序字段不唯一导致分页查询结果出现重复数据
    背景pg单字段排序,排序字段中可能会出现重复,这样就会导致我们在进行分页查询时会出现一些和预期不相符的现象,如这个数据在第一页出现了,然后再第二页又出现。复现步骤createtabletest_select_order_page_duplicate(idvarchar(36)notnullconstrainttest_select_order_pa......
  • 排序算法
    排序算法哪些是稳定的排序算法,哪些是不稳定的稳定的:直接插入排序:最坏情况是逆序,时间复杂度是O(N^2^),最好情况是插入的都是顺序,时间复杂度O(N),空间复杂度O(1)冒泡排序:时间复杂度O(N^2^),空间复杂度O(1)计数排序:时间复杂度O(N+Range),空间复杂度O(range)不稳定:希尔排序:时间复杂......
  • 33. 搜索旋转排序数组
    整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0<=k<nums.length)上进行了 旋转,使数组变为 [nums[k],nums[k+1],...,nums[n-1],nums[0],nums[1],...,nums[k-1]](下标 从0开始 计数)。例如, [0,1,2,4,5,6,7] 在......