堆排序算法的时间复杂度为O(nlgn).在堆排序算法中,我们使用的是最大堆。(1)初始时候,堆排序算法利用BUILD-MAX-HEAP将输入数组A[1..n]建成最大堆。此时堆的根结点是最大元素,且该元素位于数组A[1]。接着将A[1]与A[n]互换,则可以将A[1..n]中的最大值置于A[n]。(...
分类:
其他好文 时间:
2014-07-22 23:16:35
阅读次数:
404
1
/**********************************************************************************************************
2 * Function :...
分类:
其他好文 时间:
2014-05-01 12:23:06
阅读次数:
355
1
/**********************************************************************************************************
2 * Function : ...
分类:
其他好文 时间:
2014-05-01 12:12:43
阅读次数:
297
package algorithm.sort;public class HeapSort {
public static void main(String[] args) { int[] a = new int[] {5, 3, 7, 2, 1, 4,
9, 8, 6, 1}; sort(a); p...
分类:
其他好文 时间:
2014-05-01 03:24:04
阅读次数:
332
堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。通常堆是通过一维数组来实现的。在起始数组为
0 的情形中:父节点i的左子节点在位置 (2*i+1);父节点i的右子节点在位置...
分类:
其他好文 时间:
2014-04-30 17:13:32
阅读次数:
464
arry 存在两个可以直接用来重排序的方法:reverse()和sort().
reverse():会对反转数组项的顺序。 sort():按升序排列数组项。
原理:sort方法会调用每一个数组想的toString()转型方法,然后得到的字符串,来确定如何排序。例子:var valu...
分类:
编程语言 时间:
2014-04-29 16:36:46
阅读次数:
436
在上一篇排序算法的文章中介绍了插入排序,分别为直接插入排序和希尔排序。今天我们继续来介绍其他的排序算法。
1、选择排序:简单选择排序
2、选择排序:堆排序...
分类:
其他好文 时间:
2014-04-29 13:36:20
阅读次数:
340
题意给了你N头牛,每头牛的强壮值是一个区间[s,e],如果第 i 头牛比第 j 头牛强壮那么必须满足 Si Ej - Sj;
为了满足这三个条件我们进行排序,先以e降序排为先决条件,若e相等则让s升序排列,如此即可满足三个条件,这道题目任意两头牛的强壮值区间有可能完全一样,这样就不需要重新用树状数组求一次和了,直接赋值即可,这样可以省很多时间,因为已经排序处理了,所以即便区间相等的 肯定就是...
分类:
其他好文 时间:
2014-04-29 13:26:21
阅读次数:
323
oracle认为 null 最大。 升序排列,默认情况下,null值排后面。
降序排序,默认情况下,null值排前面。(1)用nvl函数或decode函数将null转换为一特定值 替换null:
nvl(arg,value)(2)用case语法将null转换为一特定值: order by (ca.....
分类:
其他好文 时间:
2014-04-28 01:06:19
阅读次数:
554