码迷,mamicode.com
首页 >  
搜索关键字:堆排    ( 1969个结果
python中的堆排序peapq模块
heapq模块实现了python中的堆排序,并提供了有关方法。让用Python实现排序算法有了简单快捷的方式。 heapq的官方文档和源码:8.4.heapq-Heap queue algorithm 下面通过举例的方式说明heapq的应用方法 实现堆排序 #! /usr/bin/evn python #coding:utf-8 from heapq import * def ...
分类:编程语言   时间:2014-06-24 18:47:47    阅读次数:403
利用堆实现堆排序&优先队列
假设要实现非递减排序,则需要用要大顶堆。此处设计到三个大顶堆的操作:(1)自顶向下调整操作:MaxHeapify(对应堆的SiftDown操作)、(2)利用数组建立大顶堆:BuildMaxHeap、(3)不断交换堆顶元素(堆的最大元素)和堆的末尾元素,实现非递减排序。 优先队列分为最大优先队列和最小优先队列,分别借助于大顶堆和小顶堆。 优先队列有以下基本操作:(1)提取队列中的最大(小)元素;(2)提取队列中的最大(小)元素并从队列中删除;(3)将队列中元素为x的关键字减少(增大)到k,这里假设k的值不大(...
分类:其他好文   时间:2014-06-22 20:58:26    阅读次数:319
java排序学习笔记
前面写了js的排序实现,总得玩玩java的哈。同样,冒泡、选择、快速(这三个之前实现过也写过文章)、堆排序,然后做比较。主要遇到的难点:- -||想轻松点写个封装计时的逻辑,不想每调用一个排序就要写一个计时代码。想想,还是javascript写起来方便;java的话,我想到的方法是写一个抽象类:抽象...
分类:编程语言   时间:2014-06-22 12:28:04    阅读次数:218
十大基础实用算法之寻找最小(最大)的k个数-线性查找算法
本文章用七种思路来查找无序数组中的前k个最小(最大)元素,复杂度随着问题的分析变得越来越低,思路也随着分析变得越来越的。贯穿讲解了快速排序和堆排序的应用,对这两种的排序在阅读本文后会有更深刻的理解。...
分类:其他好文   时间:2014-06-22 00:06:29    阅读次数:347
利用堆实现堆排序&优先队列
堆排序、利用堆实现最大(小)优先级队列、STL中的heap的使用,利用堆求解top_k类问题。...
分类:其他好文   时间:2014-06-21 22:12:31    阅读次数:291
CSDN 夏令营程序 试题分析 (2)
CSDN 夏令营程序 试题分析 (2)...
分类:其他好文   时间:2014-06-21 21:48:03    阅读次数:201
N个降序数组,找到最大的K个数
问题定义这个问题来自网上看到的百度算法题,感觉很不错,问题定义如下:假定有20个有序数组,每个数组有500个数字,降序排列,数字类型32位uint数值,现在需要取出这10000个数字中最大的500个,怎么做?解决方法这里其实有很多解决方法,笨拙的或者巧妙的。这里介绍一个非常不错的方法,使用最大堆堆排...
分类:其他好文   时间:2014-06-21 11:28:25    阅读次数:188
十大基础实用算法之快速排序和堆排序
使用比较短的篇幅、详细的分析、伪代码、代码和动画详细介绍了快速排序和堆排序,并分析了算法思想和复杂度。值得一看...
分类:其他好文   时间:2014-06-18 06:48:51    阅读次数:210
【Algorithm】堆排序
堆是一种完全二叉树结构,并且其满足一种性质:父节点存储值大于(或小于)其孩子节点存储值,分别称为大顶堆、小顶堆。堆一般采用数组进行存储(从下标为0开始)。则父节点位置为i,那么其左孩子为2*i + 1,右孩子为2*i + 2。一. 算法描述 堆排序主要分为两个过程:建堆:先使长度为N数组形成一...
分类:其他好文   时间:2014-06-18 00:08:54    阅读次数:207
数据结构 - 归并排序(merging sort)
归并排序(merging sort): 包含2-路归并排序, 把数组拆分成两段, 使用递归, 将两个有序表合成一个新的有序表.归并排序(merge sort)的时间复杂度是O(nlogn), 实际效果不如快速排序(quick sort)和堆排序(heap sort),但是归并排序是稳定排序, 而.....
分类:其他好文   时间:2014-06-17 23:47:38    阅读次数:299
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!