码迷,mamicode.com
首页 >  
搜索关键字:堆排序    ( 1851个结果
排序算法四:交换排序之冒泡排序
排序算法四:交换排序之冒泡排序声明:引用请注明出处http://blog.csdn.net/lg1259156776/引言在我的博文《“主宰世界”的10种算法短评》中给出的首个算法就是高效的排序算法。本文将对排序算法做一个全面的梳理,从最简单的“冒泡”到高效的堆排序等。系列博文的前三篇讲述了插入排序的三种不同类型,本文讲述第二大类的排序算法:交换排序,包括冒泡排序和快速排序。...
分类:编程语言   时间:2015-09-25 13:21:37    阅读次数:272
计数排序(counting-sort)——算法导论(9)
1. 比较排序算法的下界 (1) 比较排序 到目前为止,我们已经介绍了几种能在O(nlgn)时间内排序n个数的算法:归并排序和堆排序达到了最坏情况下的上界;快速排序在平均情况下达到该上界。 如果仔细观察,我们会发现:在排序的最终结果中,各元素之间的次序依赖于它们之间的比较。我们把这类排序算法统称为比...
分类:编程语言   时间:2015-09-23 19:25:12    阅读次数:233
排序算法
各种排序算法的比较排序方法平均时间最坏情况辅助存储简单排序O(n2)O(n2)O(1)快速排序O(nlogn)O(n2)O(logn)堆排序O(nlogn)O(nlogn)O(1)归并排序O(nlogn)O(nlogn)O(n)基数排序O(d(n+rd))O(d(n+rd))O(rd)快速排序 排....
分类:编程语言   时间:2015-09-22 18:37:15    阅读次数:286
堆排序
package leetcode.sort;import java.util.Arrays;import java.util.Random;/** * HeapSort * Created by blank on 15/8/12. */public class HeapSort { publi...
分类:编程语言   时间:2015-09-22 13:01:51    阅读次数:174
笔试题
一、 单选题1. 下面排序算法中,初始数据集的排列顺序对算法的性能无影响的是A. 堆排序B. 插入排序C. 冒泡排序D. 快速排序2. 一个栈的入栈序列式ABCDE则不可能的出栈序列是A. DECBAB. DCEBAC. ECDBAD. ABCDE3. 某进程在运行过程中需要等待从磁盘上读入数...
分类:其他好文   时间:2015-09-21 12:21:22    阅读次数:430
算法导论第六章堆排序(一)
现在来看,堆的含义大概有两种,一种是数据结构,一种是在一些语言中所定义的“垃圾回收机制”,如Java,在书本上的开篇强调了这两者,并强调若非特殊说明,皆把堆看做是一种数据结构。(二叉)堆的定义:1)它是一个数组,可以被看成是一棵近似的完全二叉树,树上的每一个节点看做是数组中的每一个元素。2)堆分为最...
分类:编程语言   时间:2015-09-20 16:18:56    阅读次数:240
转载:堆排序 Heap Sort
堆排序是一种选择排序,其时间复杂度为O(nlogn)。堆的定义 n个元素的序列{k1,k2,…,kn}当且仅当满足下列关系之一时,称之为堆。 情形1:ki = k2i 且ki >= k2i+1 (最大化堆或大顶堆) 其中i=1,2,…,n/2向下取整; 若将和此序列对应的...
分类:编程语言   时间:2015-09-19 09:40:41    阅读次数:175
排序算法总结
排序算法 平均复杂度 冒泡排序 O(n2) 选择排序 O(n2) 插入排序 O(n2) 希尔排序 O(n1.5) 快速排序 O(N*logN) 归并排序 O(N*logN) 堆排序 O(N*logN) 基数排序 O(d(n+r)) 一. 冒泡排序(BubbleSort) 基本思想:两个数...
分类:编程语言   时间:2015-09-17 23:29:50    阅读次数:834
堆排序与优先队列——算法导论(7)
1. 预备知识 (1) 基本概念 如图,(二叉)堆一个数组,它可以被看成一个近似的完全二叉树。树中的每一个结点对应数组中的一个元素。除了最底层外,该树是完全充满的,而且从左向右填充。堆的数组A包括两个属性:A.length给出了数组的长度;A.heap-size表示有多少个堆元素保存在该数组中(因为...
分类:编程语言   时间:2015-09-17 21:22:24    阅读次数:351
浅谈数据结构-选择排序
选择排序:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。 选择排序正如定义所讲,在数组查询出最小值,然后放在此次循环开始位置(前一次循环已经获取比它更小的值放在前面)。 简单选择排序就是单纯的从数组中一次一次循环获取到最小值,放到循环位置。而堆排序正如...
分类:编程语言   时间:2015-09-17 17:11:28    阅读次数:267
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!