
算法
csdn_kenneth
这个作者很懒,什么都没留下…
展开
-
Java常用排序算法/程序员必须掌握的8大排序算法
分类: 1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择排序、堆排序) 4)归并排序 5)分配排序(基数排序) 所需辅助空间最多:归并排序 所需辅助空间最少:堆排序 平均速度最快:快速排序 不稳定:快速排序,希尔排序,堆排序。 // 排序原始数据 int[] a = {49, 38, 65, 97, 76, 1转载 2018-01-23 14:09:43 · 274 阅读 · 0 评论 -
Java 堆排序(大顶堆、小顶堆)
堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。 堆排序的平均时间复杂度为Ο(nlogn) 。 算法步骤: 1.创建一个堆H[0..n-1] 2.把堆首(最大值)和堆尾互换 3.把堆的尺寸缩小1,并调用shift_down(0),目的是把新的数组顶端数据调整到相转载 2018-01-31 09:50:55 · 714 阅读 · 0 评论 -
快速排序——JAVA实现(图文并茂)
高快省的排序算法 有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。 假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放转载 2018-01-25 14:14:01 · 251 阅读 · 0 评论 -
希尔排序
希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 是插入排序的一种,只不过是效率更高。就能独立成一种算法。 对希尔算法,就是先知道这个数组的长度n,, 所以,它的一半就是n/2,如果不能整除就向上取整; 第一轮:先将数据分成两组,个数是奇数的话,向上取整。转载 2018-01-29 14:18:29 · 571 阅读 · 0 评论 -
二分查找算法
https://www.cnblogs.com/yoyohong/p/5759138.html转载 2018-05-28 10:54:03 · 209 阅读 · 0 评论