码迷,mamicode.com
首页 >  
搜索关键字:堆排    ( 1969个结果
《算法导论》学习摘要chapter-6——堆排序
本章堆排序内容是《算法导论》教材第二部分《排序与顺序统计量》的第一讲。        堆排序,这是一种O(nlgn)时间的原址排序算法。它使用了一种被称为堆的数据结构,堆还可以用来实现优先级队列。 1、堆的概念         数组R[1...n]中,n个关键字序列k1,k2,…,kn,当且仅当该序列满足如下性质(简称为堆性质,以大根堆为例): ki >= k(2i)且ki >...
分类:编程语言   时间:2016-04-01 18:31:48    阅读次数:281
六种排序算法C语言版(上)
排序即将一个无序的数组(序列)按照一定的规则排列,常见的规则便是按照从大到小或者从小到大的顺序。本文讨论的排序一律指按照从小到大的顺序进行排列的这种情况。 本文将分为上下两章介绍以下六种排序算法: (1)直接选择排序 (2)冒泡排序 (3)快速排序 (4)二分排序 (5)堆排序 (6)线性时间排序。 ...
分类:编程语言   时间:2016-03-31 23:25:04    阅读次数:154
算法练习--快速排序、堆排序
正题: 1、快速排序 原理:在初始序列中选择一个参考值,将序列其他数和该值进行对比,小的放一边大的放一边,然后把划分的两数组看成新序列,重新选择参考值,并比较划分。知道每个数组的元素个数为1停止。 代码:第一眼看上去,貌似递归的方式来弄比较好。 2、堆排序 原理:堆排序(Heapsort)是指利用堆 ...
分类:编程语言   时间:2016-03-31 21:41:51    阅读次数:310
算法(一):排序
排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。 内排序有可以分为以下几类: (1)、插入排序:插入排序、二分法插入排序、希尔排序。 (2)、选择排序:选择排序、堆排序。 (3)、交换排序 ...
分类:编程语言   时间:2016-03-31 16:24:41    阅读次数:213
排序算法之快速选择排序
恢复内容开始 接算法的上一系列,在前几篇博客中,已经分析了 交换算法(冒泡排序,快速排序)、插入算法(直接插入排序,希尔排序),这一系列我们谈谈选择排序。 选择排序分为两种,一种是直接选择排序,一种是堆排序,下面我们看 直接选择排序: 百度百科: 选择排序(Selection sort)是一种简单直 ...
分类:编程语言   时间:2016-03-30 00:07:12    阅读次数:407
用仿函数实现大小堆及堆排序
"2.h" #include<iostream> #include<vector> #include<assert.h> usingnamespacestd; template<classT> structLess { booloperator()(constT&left,constT&right) { returnleft<right; } }; template<classT> structGreater { b..
分类:编程语言   时间:2016-03-29 22:29:56    阅读次数:501
冒泡实现ArrayList里面的对象排序
在我们学习冒泡、选择、堆排序这些的时候,一般都是使用的简单的数组来实现算法,但是在实际中需要对对象进行排序。 以学生为例,通过学生的成绩来对他们进行一个排序 <!--StartFragment --><!--StartFragment --> 主要是需要灵活运用ArrayList里面的set方法,还 ...
分类:编程语言   时间:2016-03-29 10:00:16    阅读次数:154
堆排序
一个数组可以看成是一棵树。(数组下标0 是根节点 2i+1是节点的左孩子 2i+2是右孩子 ) 这棵树的父亲节点 大于 左右孩子节点 ,称之为大顶堆。 这棵树的父亲节点 小于 左右孩子节点 ,称之为小顶堆。 堆排序 (以大顶堆 为例) 主要分为两个 部分 1>调整节点 2>将无序的数组变成 大顶堆 ...
分类:编程语言   时间:2016-03-28 21:52:13    阅读次数:225
常用排序算法
趁空闲时间,我把常用的排序算法实现并总结一下,以便温故知新。以下将提及到直接插入排序、冒泡排序、快速排序、选择排序、堆排序、归并排序。 按类型分,可以分成以下几种: (1)插入排序:直接插入排序 (2)交换排序:冒泡排序、快速排序 (3)选择排序:选择排序、堆排序 (4)归并排序:归并排序...
分类:编程语言   时间:2016-03-28 00:24:28    阅读次数:176
基础排序算法
七个基础排序算法(均为内部排序): 直接插入排序 希尔排序 冒泡排序 简单选择排序 快速排序 堆排序 二路归并排序排序算法稳定性:经过排序后,具有相同关键码的元素之间的相对次序保持不变,则称该排序方法是稳定的;否则不稳定。直接插入排序:void InsertSort(int a[],int n){ // index start at 1, a[0] is temp one i...
分类:编程语言   时间:2016-03-28 00:15:58    阅读次数:189
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!