![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
萝卜吃土豆
这个作者很懒,什么都没留下…
展开
-
希尔排序算法Java实现
希尔排序算法是插入排序的一种改进,希尔排序将数组的下标按照一定的增量排序,将一个数组分成几个部分,对其中各个部分都只用使用插入排序的思想,当在当前增量情况下各个部分排序完成,则按照一定规则缩小增量,直至增量为一时,数组就只有一个部分,完成这部分的排序即可完成数组的排序。增量选取无硬性要求,在这里增量选择为3*k+1,即1,4,7,10,13...... public class Shel...原创 2018-07-23 20:59:14 · 416 阅读 · 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 · 607 阅读 · 0 评论 -
插入排序算法Java实现
插入排序的思想是循环数组中每一个元素,然后将这些元素依次插入到一个有序的数列中去,实现数组的排序,也就是说循环到的当前元素索引的左侧都是已经排好序的,针对当前元素,将它依次与相邻的左侧元素比较,小于左侧就两个交换,循环比较和交换的过程,直至元素大于左侧相邻元素,或者是该元素已被交换至最左侧。 代码实现如下: public class Insertion { //插入排序...原创 2018-07-18 13:48:29 · 670 阅读 · 0 评论 -
选择排序算法Java实现
选择排序的基本思想是首先找到数组中最小的那一个元素,然后再将该元素与数组中的第一个元素交换位置。 再在剩下的元素中找出最小的那一个元素,然后再将该元素与数组中的第二个元素交换位置。 如此循环,最后实现数组的排序 代码如下: public class Selection { //选择排序算法,升序 public static void sort(Comparable[] a) {...原创 2018-07-18 13:37:47 · 5551 阅读 · 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 · 182 阅读 · 0 评论 -
树的遍历,循环迭代的方法,非递归方法
前中后序遍历 给定一棵树如下所示 1 / \ 2 3 / / \ 4 5 6 1.前序遍历:根——左——右 1-2-4-3-5-6 2.中序遍历:左——根——右 4-2-1-5-3-6 3.后续遍历:左——右——根 4-2-5-6-3-1 使用递归的方法实现这三种遍历都很简单,我们在这使用循环迭代的方法,代码如下 import java....原创 2019-05-08 10:25:17 · 564 阅读 · 0 评论