算法
~
时年、
潜心修炼
展开
-
排序_希尔排序
package com.zsx.algorithm.sort; import java.util.Arrays; /** * @author Zsx * 希尔排序 / 缩小增量排序 * @Time 2021/6/22 14:17 */ public class ShellSort { public static void main(String[] args) { //需要排序的数组 int[] arr = {1, 3, 8, 4, 20, 5, 7,原创 2021-06-23 16:04:18 · 131 阅读 · 0 评论 -
排序_插入排序
package com.zsx.algorithm.sort; import java.util.Arrays; /** * @author Zsx * <p> * 插入排序 * 默认将一个待排序数组分为2个数组的思想。从第二个元素开始遍历,每个元素不断向前寻找,直到找到第一个或者找到比自己大/小的元素,找的过程中被找过的元素不停向后移位。找到后将当前值插入找到的位置 * 假设存在数组 {2,4,1,5,6,3},要求从小到大排序 * 第一次插入排序:默认第一个元素为排好序的元素原创 2021-06-22 10:39:50 · 175 阅读 · 0 评论 -
排序_选择排序
package com.zsx.algorithm.sort; import java.util.Arrays; /** * @author Zsx * 选择排序 * 时间复杂度:O(n^2) * 判断过程示例: * 初始数据:[6,5,4,3,2,1] * 从小到大排序 * 每一次都找后面最小的元素,往前面放。第一次最小的放第一个,第二次最小的放第二个。直到第length-1次,放第length-1个 * 第一遍排序:遍历 长度=length 的数组,找到最小的那个元素,和第一个交换位原创 2021-06-18 17:10:14 · 96 阅读 · 0 评论 -
排序_冒泡排序
package com.zsx.algorithm.sort; import java.util.Arrays; /** * @author Zsx * 冒泡排序 * 双层嵌套循环,时间复杂度 O(n^2) * 判断过程示例: * 初始数据:[6,5,4,3,2,1] * 从小到大排序 * 第一遍排序:遍历 长度=length 的数组,将大的和小的通过临时变量交换位置,直到遍历完成,遍历后数组如下: [5,4,3,2,1,6] * 第二遍排序:遍历 长度=length-1 的数组,因为最原创 2021-06-18 15:59:45 · 128 阅读 · 0 评论 -
时间复杂度_举例说明
/** * @author Zsx * 时间复杂度 * O(1) < O(log2n) < O(n) < O(nlog2n) < O(n^2) < O(n^3) < O(n^k) < O(2^n) < O(n!) * @Time 2021/6/16 21:50 */ public class TimeComplexity { /** * 举例说明 * * @param args */ pub.原创 2021-06-16 22:13:11 · 208 阅读 · 0 评论 -
递归_八皇后问题
/** * 八皇后算法 * @Time 2021/6/15 20:48 */ public class Queue8 { //表示共有max个皇后 int max = 8; //结果 int[] result = new int[max]; //结果次数 int count = 0; public static void main(String[] args) { Queue8 queue8 = new Queue8();原创 2021-06-15 21:21:32 · 115 阅读 · 0 评论 -
递归_实现迷宫问题
package com.zsx.algorithm; /** * @author Zsx * @Time 2021/6/8 21:38 */ public class MiGong { public static void main(String[] args) { //模拟迷宫 int[][] map = new int[8][8]; //1表示墙 for (int i = 0; i < map.length; i+原创 2021-06-08 22:51:26 · 140 阅读 · 0 评论