- 博客(15)
- 收藏
- 关注
原创 快速排序
快速排序算法思想:快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两 部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排 序,整个排序过程可以递归进行,以此达到整个数据变成有序序列图解:算法代码:package com.cao.sort;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util
2021-04-06 22:23:11
120
原创 希尔(优化插入)排序
希尔(优化插入)排序算法起源:看简单的插入排序可能存在的问题. 数组 arr = {2,3,4,5,6,1} 这时需要插入的数 1(最小), 这样的过程是: {2,3,4,5,6,6} {2,3,4,5,5,6} {2,3,4,4,5,6} {2,3,3,4,5,6} {2,2,3,4,5,6} {1,2,3,4,5,6}结论: 当需要插入的数是较小的数时,后移的次数明显增多,对效率有影响.希尔排序是希尔(Donald Shell)于 1959 年提出的一种排序算法。希尔排序也是一种插入排序,它是简
2021-04-06 16:41:08
141
原创 (简单)插入排序
插入排序(简单插入排序)算法思想:插入排序(Insertion Sorting)的基本思想是:把 n 个待排序的元素看成为一个有序表和一个无序表,开始时有 序表中只包含一个元素,无序表中包含有 n-1 个元素,排序过程中每次从无序表中取出第一个元素,把它的排 序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。图解:代码实现;package com.atguigu.sort;import java.text.SimpleDateFormat;import
2021-04-06 15:20:44
275
原创 选择排序
选择排序算法思想:选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从 arr[0]~arr[n-1]中选取最小值, 与 arr[0]交换,第二次从 arr[1]~arr[n-1]中选取最小值,与 arr[1]交换,第三次从 arr[2]~arr[n-1]中选取最小值,与 arr[2] 交换,…,第 i 次从 arr[i-1]~arr[n-1]中选取最小值,与 arr[i-1]交换,…, 第 n-1 次从 arr[n-2]~arr[n-1]中选取最小值, 与 arr[
2021-04-05 23:16:23
77
原创 冒泡排序算法
冒泡排序基本思想:通过对待排序序列从前向后(从下标较小的元素开始),依次比较 相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。优化: 因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在 排序过程中设置一个标志 flag 判断元素是否进行过交换。从而减少不必要的比较。(这里说的优化,可以在冒泡排 序写好后,再进行)图解:小结上面的图解过程:(1) 一共进行 数组的大小-1 次 大的循环(2)每一趟排
2021-04-05 22:38:33
145
原创 八皇后问题
八皇后问题问题:在 8×8 格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行、 同一列或同一斜线上,问有多少种摆法(92)。算法思想:第一个皇后先放第一行第一列第二个皇后放在第二行第一列、然后判断是否 OK, 如果不 OK,继续放在第二列、第三列、依次把所有列都 放完,找到一个合适就开始下一个皇后继续第三个皇后,还是第一列、第二列……直到第 8 个皇后也能放在一个不冲突的位置,算是找到了一个正确 解当得到一个正确解时统计一次,然后又把第八个皇后放在下
2021-04-05 20:51:36
224
2
原创 迷宫问题
迷宫回溯问题描述:从开始点走到终点。图示:算法代码:package com.atguigu.recursion;public class MiGong { public static void main(String[] args) { // 先创建一个二维数组,模拟迷宫 // 地图 int[][] map = new int[8][7]; // 使用1 表示墙 // 上下全部置为1 for (int i = 0; i < 7; i++) { map[0
2021-04-05 17:09:13
185
1
原创 CommandLineRunner接口的作用
在平常开发中可能需要实现在启动后执行的功能,Springboot提供了一种简单的实现方案,即实现CommandLineRunner接口,实现功能的代码在接口的run方法里。import org.springframework.core.annotation.Order;public interface CommandLineRunner { /** * Callback used to run the bean. * @param args incoming main met
2021-02-10 09:39:32
2286
原创 算法知识整理(onenote)
文章目录折半查找二叉树前序遍历中序遍历后序遍历随机数生成折半查找int Binsearch1(int r[], int n, int k) { int low = 0, hight = n - 1,mid=0; while (low <= hight) { mid = (hight + low) / 2; if (r[mid]>k) hight = mid-1; //避免死循环 else if(r[mid] < k)low = mid+1; //避免
2021-02-10 09:29:01
176
转载 @Order注解使用
注解@Order或者接口Ordered的作用是定义Spring IOC容器中Bean的执行顺序的优先级,而不是定义Bean的加载顺序,Bean的加载顺序不受@Order或Ordered接口的影响1.@Order的注解源码解读@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})@Documentedpublic @interface Order {
2021-02-04 01:55:01
2259
2
原创 c语言c++知识整理(onenote)
文章目录c++中的字符串1.cin>>1)最常见的是获取输入的一个字符或数字,如2)获取输入的字符串,可以用数组或string类型。2.长度3.比较C语言中字符数组的初始化与赋值总结c++中的字符串C++获取字符cin,getchar,get,getline的区别 - shrimp_929 - 博客园 (cnblogs.com)1.cin>>1)最常见的是获取输入的一个字符或数字,如int a,b;cin>>a>>b;`注意:cin>&
2021-02-04 01:20:42
453
原创 java知识点整理(onenote)
文章目录1. Lambda表达式2. Static和Final3. Java中的集合4. 函数式接口5. 字符串6. Stream数据流7. Input和OutputScancer:Read Files :读取csv文件:Standard Output :8.Equals和==的区别9. String的应用Compare()方法10. 数组11. 类访问权限12. 继承关系13. 生成随机数14. format方法String类的format()方法格式化数字:格式化时间:15. 接口16. 类之间的关系1
2021-02-04 00:04:10
481
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人