算法与数据结构-- 排序
bianjie1314
这个作者很懒,什么都没留下…
展开
-
冒泡排序
冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的大小不满足所需的排序的条件则将他们在数列中的位置进行交互。重复地进行排序直到没有数据可以再需要交换,排序即完成。 算法原理 冒泡排序 冒泡排序算法的运作如下:(从后往前) 1.比较相邻的元素。如果第一个比第二个大原创 2017-08-08 23:19:09 · 582 阅读 · 0 评论 -
插入排序
插入排序 有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法--插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素原创 2017-08-09 12:25:33 · 297 阅读 · 0 评论 -
快速排序
快速排序 通过一轮的排序将序列分割成独立的两部分,其中一部分序列的关键字(这里主要用值来表示)均比另一部分关键字小。继续对长度较短的序列进行同样的分割,最后到达整体有序。在排序过程中,由于已经分开的两部分的元素不需要进行比较,故减少了比较次数,降低了排序时间。 详细描述 首先在要排序的序列 a 中选取一个中轴值,而后将序列分成两个部分,其中左边的部分原创 2017-08-09 17:42:31 · 526 阅读 · 0 评论 -
选择排序
选择排序 对比数组中前一个元素跟后一个元素的大小,如果后面的元素比前面的元素小则用一个变量k来记住他的位置,接着第二次比较,前面"后一个元素"现变成了"前一个元素",继续跟他的"后一个元素"进行比较如果后面的元素比他要小则用变量k记住它在数组中的位置(下标),等到循环结束的时候,我们应该找到了最小的那个数的下标了,然后进行判断,如果这个元素的下标不是第一个元素的下标,就让第一个元素跟他交换一原创 2017-08-09 11:13:09 · 260 阅读 · 0 评论 -
堆排序
堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆性质:即子结点的键值或索引总是小于(或者大于)它的父节点。 简介 堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的要求可知,最大原创 2017-08-14 00:50:07 · 224 阅读 · 0 评论