
算法
萝卜吃土豆
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
希尔排序算法Java实现
希尔排序算法是插入排序的一种改进,希尔排序将数组的下标按照一定的增量排序,将一个数组分成几个部分,对其中各个部分都只用使用插入排序的思想,当在当前增量情况下各个部分排序完成,则按照一定规则缩小增量,直至增量为一时,数组就只有一个部分,完成这部分的排序即可完成数组的排序。增量选取无硬性要求,在这里增量选择为3*k+1,即1,4,7,10,13...... public class Shel...原创 2018-07-23 20:59:14 · 469 阅读 · 0 评论 -
归并排序算法Java实现
归并排序的主要思想是将两个有序的部分归并成一个有序的整体,这一关键的实现方法如下每个部分都有详细注释public class MergeSort { public static void merge(Comparable[] a,int lo,int mid,int hi) { Comparable[] b = new Comparable[hi-lo+1]; //建立一个同样...原创 2018-07-24 11:17:58 · 691 阅读 · 0 评论 -
插入排序算法Java实现
插入排序的思想是循环数组中每一个元素,然后将这些元素依次插入到一个有序的数列中去,实现数组的排序,也就是说循环到的当前元素索引的左侧都是已经排好序的,针对当前元素,将它依次与相邻的左侧元素比较,小于左侧就两个交换,循环比较和交换的过程,直至元素大于左侧相邻元素,或者是该元素已被交换至最左侧。 代码实现如下:public class Insertion { //插入排序...原创 2018-07-18 13:48:29 · 712 阅读 · 0 评论 -
选择排序算法Java实现
选择排序的基本思想是首先找到数组中最小的那一个元素,然后再将该元素与数组中的第一个元素交换位置。再在剩下的元素中找出最小的那一个元素,然后再将该元素与数组中的第二个元素交换位置。如此循环,最后实现数组的排序 代码如下:public class Selection { //选择排序算法,升序 public static void sort(Comparable[] a) {...原创 2018-07-18 13:37:47 · 5621 阅读 · 2 评论 -
基于二叉堆的优先队列java实现
堆有序的·二叉树,就是每个节点值都是大于等于它的子节点值。这里用大小为N+1的数组pq来表示一个大小为N的堆,不使用pq[0]。关于二叉树,有一个特点很重要,就是位置k的父节点是k/2,子节点是2*k和2*k+1。 堆的有序化,包括两种情况:1.当某个节点的值增大时,采用的是由下至上的堆有序化,比较该节点与它的父节点的值,并根据比较结果交换位置。定义方法swim(上浮)。2...原创 2018-05-02 20:58:03 · 248 阅读 · 0 评论 -
树的遍历,循环迭代的方法,非递归方法
前中后序遍历给定一棵树如下所示 1 / \ 2 3 / / \4 5 61.前序遍历:根——左——右1-2-4-3-5-62.中序遍历:左——根——右4-2-1-5-3-63.后续遍历:左——右——根4-2-5-6-3-1使用递归的方法实现这三种遍历都很简单,我们在这使用循环迭代的方法,代码如下import java....原创 2019-05-08 10:25:17 · 641 阅读 · 0 评论