码迷,mamicode.com
首页 >  
搜索关键字:堆排    ( 1969个结果
八大排序对比
八大排序对比(转)排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:...
分类:编程语言   时间:2015-05-03 17:25:25    阅读次数:224
看数据结构写代码(63) 堆排序
// HeapSort.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #define LIST_MAX_SIZE 100 //顺序表 struct sqList{ int base[LIST_MAX_SIZE]; int len; }; typedef sqList Heap;//顺序表作为堆排序的基本类型 //初始化顺序表 ...
分类:编程语言   时间:2015-05-03 09:19:53    阅读次数:146
排序算法——堆排序
关于堆排序的一些基本定义可参见我转载的另一篇博文。http://blog.csdn.net/u010275850/article/details/45311661  其实在学习堆的时候细心的同学就可以发现,只要依次保存删除操作的数据,就可以得到一个有序的序列。堆排序也是利用了这样的思想。 算法实现: /*根据最大堆实现的堆排序*/ #include #define LeftChild(i)...
分类:编程语言   时间:2015-04-29 11:43:14    阅读次数:136
java 堆排序的实现
堆就是一个完全二叉树,堆要求是指 该节点大于它的两个子节点。而两个字节点大小不一定。堆排序的最坏时间复杂度为nlog(n),平均也为nlog(n),占用空间为o(1),是一种比较排序算法。堆排序也可以用于找最大的k个数。时间复杂度为klog(n),因为建堆后,每次循环实际上都生成一个最大数。下面见代...
分类:编程语言   时间:2015-04-28 11:16:36    阅读次数:161
一天一学数据结构之选择排序
每次 从待排序序列中选择出一个最大(或者最小)的记录添加到有序序列的后面即为选择排序。 选择排序主要有:简单选择排序、树形选择排序、堆排序。1、简单选择排序基本思路:重复进行n趟选择,第i趟通过n-i次记录的比较,在n-i+1个记录中选取最小(或最大)的记录与第i个记录进行交换。void se...
分类:编程语言   时间:2015-04-28 08:16:43    阅读次数:120
排序大汇总
1.归并排序 void merge(int *result, int begin, int mid, int end, int *temp) { int k = begin; int i = begin; int j = mid + 1; while (i <= mid&&j <= end){ temp[k++] = result[i] < result[j] ? result[i+...
分类:编程语言   时间:2015-04-27 20:09:43    阅读次数:155
排序算法Java实现(堆排序)
1 package sorting; 2 3 /** 4 * 堆排序 5 * 平均O(nlogn),最好O(nlogn),最坏O(nlogn);空间复杂度O(1);不稳定;较复杂 6 * @author zeng 7 * 8 */ 9 public class DuiPaixu {10...
分类:编程语言   时间:2015-04-25 22:32:39    阅读次数:199
常见经典排序算法
常见经典排序算法1.希尔排序n的1.2次幂 不稳定2.二分插入法3.直接插入法O(n*n)稳定4.带哨兵的直接排序法5.冒泡排序O(n*n)稳定6.选择排序O(n*n)不稳定7.快速排序log2(n)*n不稳定8.堆排序log2(n)*n不稳定归并排序:log2(n)*n稳定一.希尔(Shell)排...
分类:编程语言   时间:2015-04-25 16:34:17    阅读次数:178
堆排序的OC 实现
/*  建议先看堆调整方法,堆调整了解了,整个排序算法就算掌握了  */ - (void)viewDidLoad {     [super viewDidLoad];               /*      测试数据      */     NSArray *array=@[@3,@2,@6,@4,@1,@0,@6,@7,@5];     NSMutableAr...
分类:编程语言   时间:2015-04-24 09:12:05    阅读次数:122
数据结构之二叉堆(构建堆,堆排序)-(七)
/* * 堆的性质(最小堆为例): * 0.根节点为最小值 * 1.堆可以看做是一个完全二叉树(即孩子节点从左向右排列) * 2.堆的高度lgn/lg2(n为节点的数目) * 3.第i节点的左孩子节点是2*i+1,右孩子节点为2*i+2 * 4.以任意一个节点作为根节点,那么该节点都是堆 * 5.可以用一个数据来表示堆 */ /* * 构建堆的原理: * 上滤 * 在最后一个节点后建立一个空节点...
分类:编程语言   时间:2015-04-23 21:47:50    阅读次数:182
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!