码迷,mamicode.com
首页 >  
搜索关键字:稳定排序    ( 224个结果
选择排序,C语言实现
选择排序是不稳定排序,时间复杂度为O(n^2)。 选择排序类似插入排序,把数组分为两部分,一部分已经排好序,一部分未排序。 刚开始的时候所有的元素都未排序,已排序的部分为空。就好像你手里有十张牌,左手有零张,右手有10张。每次从右手的牌中取最小的一张插入到左手的牌末尾,右手的牌插完了,排序也完成了。 ...
分类:编程语言   时间:2018-12-08 15:39:02    阅读次数:207
冒泡排序,C语言实现
冒泡排序是一种稳定排序,时间复杂度平均为O(n^2),最好的时间复杂度为O(n),最坏为O(n^2)。 排序时每次只比较当前元素与后一个 元素的大小,如果当前元素大于后一个元素,则交换,如此循环直到队尾,每轮排序都可以保证将当前排序下最大的元素送到未排序部分的队尾。 有n个元素要排列,故要执行n次数 ...
分类:编程语言   时间:2018-12-08 13:27:15    阅读次数:185
python数据结构与算法(12)
排序与搜索排序算法(英语:Sortingalgorithm)是?种能将?串数据依照特定顺序进?排列的?种算法。排序算法的稳定性稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果?个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。当相等的元素是?法分辨的,?如像是整数,稳定性并不是?个问题。然?,假设以下的数对将要
分类:编程语言   时间:2018-11-29 17:57:49    阅读次数:192
排序优化
一、如何选择合适的排序算法?1.排序算法一览表 时间复杂度 是稳定排序? 是原地排序?冒泡排序 O(n^2) 是 是插入排序 O(n^2) 是 是选择排序 O(n^2) 否 是快速排序 O(nlogn) 否 是 归并排序 O(nlogn) 是 否桶排序 O(n) 是 否计数排序 O(n+k),k是数 ...
分类:编程语言   时间:2018-11-18 11:37:06    阅读次数:365
图解排序算法之堆排序
堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子 ...
分类:编程语言   时间:2018-11-17 19:05:39    阅读次数:140
常用算法(Java表述)
冒泡排序(Bubble Sort):一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。稳定排序算法 时间复杂度 O(n2),里层循环每趟比较第 j 项和第 j+1项,如果前项大于后项,则发生交换。缺点是每次比较后都可能发生交换,交换次数太多了,值从小到大 ...
分类:编程语言   时间:2018-11-16 18:49:00    阅读次数:263
归并排序
原理 归并排序(merge sort)采用经典的分治策略,将两个有序的数列合并成一个大的有序的序列,通过递归,层层合并。 流程 对于两个有序的序列合成一个有序的序列,比如 要将 【4,5,7,8】和【1,2,3,6】最终合成【1,2,3,4,5,6,7,8】 代码 复杂度 归并排序是稳定排序,它也是 ...
分类:编程语言   时间:2018-11-06 00:57:36    阅读次数:219
排序之希尔排序(JS)
希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L.Shell于1959年提出而得名。 希尔排序是基于插入排序的以下两点性质而提出改进方法 ...
分类:编程语言   时间:2018-10-12 21:20:33    阅读次数:130
计数排序与稳定排序
我们常用的排序算法,有冒泡算法、快速算法等,它们都是基于元素之间的比较来进行排序,有一种特殊的算法不是基于元素比较,而是利用数组下标来确定元素在数组的位置,这种算法就是“计数排序”。 先来说一下实现的原理,假设有20个随机整数的数组array,他们值分别是:9,3,5,4,9,1,2,7,8,1,3 ...
分类:编程语言   时间:2018-10-12 01:29:18    阅读次数:237
堆排、python实现堆排
一、堆 完全二叉树 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),是不稳定排序 堆排序中的堆有大顶堆、小顶堆两种。他们都是完全二叉树 将该堆按照排序放入列表 1. 大顶堆: 所有的父节点的值都比孩子节点大,叶子节点值最小。r ...
分类:编程语言   时间:2018-09-26 01:12:49    阅读次数:245
224条   上一页 1 ... 4 5 6 7 8 ... 23 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!