代码改变世界

随笔档案-2017年11月

堆排序算法

2017-11-30 18:28 by lc_java, 174 阅读, 收藏,
摘要: package com.neuedu.algorithm; import java.util.Arrays; public class HeapSort { private static int array[]= {9,8,7,6,5,4,3,2,1}; //堆排序 public void heapSort(){ buildHeap(); System.out.printl... 阅读全文

归并排序算法Java实现

2017-11-30 18:27 by lc_java, 454 阅读, 收藏,
摘要: 一. 算法描述 归并排序采用了分治策略(divide-and-conquer),就是将原问题分解为一些规模较小的相似子问题,然后递归解决这些子问题,最后合并其结果作为原问题的解。 归并排序将待排序数组A[1..n]分成两个各含n/2个元素的子序列,然后对这个两个子序列进行递归排序,最后将这两个已排序 阅读全文

希尔排序算法Java实现

2017-11-30 18:25 by lc_java, 386 阅读, 收藏,
摘要: 希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 希尔排序实质上是一种分组插入方法。它的基本思想是:对于n个待排序的数列,取一个小于n的整数gap(gap被称为步长)将待排序元素分成若干个组子序列,所 阅读全文

选择排序算法Java实现

2017-11-30 18:24 by lc_java, 222 阅读, 收藏,
摘要: 一. 算法描述 选择排序:比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换......第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成。 以下面5个无序的数 阅读全文

插入排序算法Java实现

2017-11-30 18:21 by lc_java, 273 阅读, 收藏,
摘要: 一. 算法描述 插入即表示将一个新的数据插入到一个有序数组中,并继续保持有序。例如有一个长度为N的无序数组,进行N-1次的插入即能完成排序;第一次,数组第1个数认为是有序的数组,将数组第二个元素插入仅有1个有序的数组中;第二次,数组前两个元素组成有序的数组,将数组第三个元素插入由两个元素构成的有序数 阅读全文

最短路径之弗洛伊德算法

2017-11-15 18:59 by lc_java, 1861 阅读, 收藏,
摘要: 下图左部分是一个最简单的3个顶点连通网图。 先定义两个数组D[3][3]和P[3][3],D代表顶点到顶点的最短路径权值和的矩阵,P代表对应顶点的最小路径的前驱矩阵。在未分析任何顶点之前,我们将D命名为D-1 ,其实它就是初始的图的邻接矩阵。将P命名为P-1 ,初始化为图中所示的矩阵。 首先,我们来 阅读全文