随笔分类 - 算法
摘要:转自:https://www.cnblogs.com/llguanli/p/7363657.html二叉树是一种非常重要的数据结构,非常多其他数据结构都是基于二叉树的基础演变而来的。对于二叉树,有深度遍历和广度遍历,深度遍历有前序、中序以及后序三种遍历方法,广度遍...
阅读全文
摘要:/* * 递归:方法可以调用自己 * 1.递归总有一个最简单的情况——方法的第一条语句总是一个包含return的条件语句。 * 2.递归调用总是去尝试解决一个规模更小的自问题,这样递归才能收敛到最简单的情况。 * 3.递归调用的父问题和尝试解决的自问题之...
阅读全文
摘要:import org.junit.Test;//回溯法求解public class QueenFind { public static final int N = 8; public static int count = 0; @Test public void te...
阅读全文
摘要:package Sort;import org.junit.Test;import Sort.utils.Swap;/* * 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序, * 它是简单插入排序经过改进之后的一个更...
阅读全文
摘要:package Sort;import org.junit.Test;import Sort.utils.Swap;/* * 直接选择排序为不稳定排序 * 直接选择排序的最好时间复杂度和最差时间复杂度都是O(n^2), * 因为即使数组一开始就是正序的,也需要将...
阅读全文
摘要:package Sort;import org.junit.Test;/* * 插入排序 * 时间复杂度:O(n^2) 由定理:N个互异数的数组的平均逆序数是 N(N-1)/4,可知:基于相邻元素之间的比较和交换的算法的时间复杂度的一个下界为O(N^2) * ...
阅读全文
摘要:package Sort;import org.junit.Test;import Sort.utils.Swap;/* * 冒泡排序: * 时间复杂度:O(n^2) * 空间复杂度:O(1) */public class BubbleSort { public ...
阅读全文
摘要:package MaxSubseqSum;public class MaxSubseqSumDemo { // 使用三个嵌套循环计算最大子列和,时间复杂度为 O(n^3) public int getMaxSubseqSum1(int[] a, int n) { i...
阅读全文
摘要:import java.util.Scanner;public class Gcd { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc ...
阅读全文