import java.util.Arrays; public class HeapSort { public static void main(String[] args) { int[] a = { 2, 5, 9, 6, 1, 4, 8, 7, 12, 50 }; sort(a); Syste... ...
分类:
编程语言 时间:
2018-07-05 10:17:54
阅读次数:
165
JDK7的Collections.sort()的算法是TimSort, 适应性的归并排序, 比较晦涩难懂, 这里没有实现 ...
分类:
编程语言 时间:
2018-05-18 11:39:25
阅读次数:
221
排序(Sorting),特别是高效的排序一直是计算机工作学习和研究的重要课题之一,排序有内部排序和外部排序之分,若整个排序过程不需要访问外存便能完成,则称此类排序为内部排序,反之则为外部排序。本篇将对常用排序算法进行总结。 在进行排序总结之前先介绍测试中常用到的生成随机数方法和计算执行时间的方法。 ...
分类:
编程语言 时间:
2018-04-26 16:56:36
阅读次数:
177
//分治思想//分类 内部比较排序//数据结构 数组//最差时间复杂度 每次选取的基准都是最大或者最小的元素,导致每次只划分出//了一个分区。需要进行n-1次划分才能结束递归,时间复杂度为O(n^2)//最优时间复杂度 每次选取的基准都是中位数,这样每次都均匀的划分出两个区域//只需要logn次划分 ...
分类:
编程语言 时间:
2018-03-27 20:49:25
阅读次数:
245
import java.util.Arrays; public class HeapSort { //数组arr下标为0的位置不使用,待排序数字放入下标为 1 ~ arr.length-1 的位置,并对这些位置上的元素排序 public static void sort(int arr[]) { H ...
分类:
编程语言 时间:
2018-03-22 21:24:02
阅读次数:
232
算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架 ...
分类:
编程语言 时间:
2018-03-11 12:07:21
阅读次数:
201
1.堆:堆是一种树,由它实现的优先级队列的插入和删除的时间复杂度都是O(logn),用堆实现的优先级队列虽然和数组实现相比较删除慢了些,但插入的时间快的多了。当速度很重要且有很多插入操作时,可以选择堆来实现优先级队列。2.java的堆和数据结构堆:java的堆是程序员用new能得到的计算机内存的可用 ...
分类:
编程语言 时间:
2018-02-25 15:49:10
阅读次数:
245
堆排序是由1991年的计算机先驱奖获得者、斯坦福大学计算机科学系教授罗伯特.弗洛伊德(Robert W.Floyd)和威廉姆斯(J.Williams)在1964年共同发明了的一种排序算法( Heap Sort ); 堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是 ...
分类:
编程语言 时间:
2018-02-05 23:27:10
阅读次数:
259
初始化堆的时候是对所有的非叶子结点进行筛选。 最后一个非终端元素的下标是[n/2]向下取整,所以筛选只需要从第[n/2]向下取整个元素开始,从后往前进行调整。 比如,给定一个数组,首先根据该数组元素构造一个完全二叉树。 然后从最后一个非叶子结点开始,每次都是从父结点、左孩子、右孩子中进行比较交换,交 ...
分类:
编程语言 时间:
2018-02-04 15:36:52
阅读次数:
177
http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/ 我的环境是centos7 x86_64 查看方法: [root@localhost ~]# uname -aLinux localhost.localdomain 3.10.0-693 ...
分类:
其他好文 时间:
2018-01-28 15:38:31
阅读次数:
370