- 博客(5)
- 收藏
- 关注
原创 算法-排序-归并
1. 归并排序将数组中数字按从小到大顺序排序.2. 实现思路一句话:分而治之。将数组先一分为二,二分为四,一直到最终分解出2个数为止。拆分时,使用递归拆分。然后将分解出来的2个数当做2个数组,从左边开始比较两个数组的大小。将左右两边数值小的数字拷贝到临时数组中。代码实现思路分两部分:第一部分:合并判断左右两边数字的大小,将小的数字拷贝到临时数组中。再比较下一个,直到左右两边有一个数字拷贝完成。将剩余部分(左边剩余或者右边剩余的)再拷贝到临时数组的末尾。第二部分:拆分假设原始数组左边的
2021-06-17 17:43:32
112
原创 算法-排序-插入排序
1. 插入排序将数组【5,2,15,9,13,20,8】按从小到大的顺序排序。2. 实现思路将一个数组:第一个数看作是有序列表(5),剩余数为无序列表(2,15,9,13,20,8)。然后从无序列表中(其实就是数组第二个数开始到后面的数)依次取1个数,插入到前面的有序列表中(就是第一个数)插入之前跟有序列表中的最后一个数比较,如果比有序列表中的数大,则插入到前面,否则插入到后面。再从无序列表中取第二个,插入到前面的有序列表中,如此往复,知道无序列表中的数取完。关于从无序列表中每次取一个数后
2021-06-10 01:03:22
175
原创 算法-排序-选择排序
1. 选择排序将数组【5,2,15,9,13,20,8】按从小到大的顺序排序。因为需要遍历2次循环,对应的时间复杂度为O(n2)2. 思路定义两个变量temp和index,分别用来存放值和下标。第一次遍历数组(遍历数组的全部)– 按顺序查找数组中的每个数,如果该数的值比临时变量temp的值小,则将数组该值赋值给变量temp,同时将数组下标赋值给index。– 当遍历完数组最后一个值后,根据temp和index找到这个最小值的位置,将该最小值和第一个数位置交换。第二次遍历数组(从第二个
2021-06-09 22:39:22
162
原创 算法-排序-冒泡排序
1. 冒泡排序将数组的数字按从小到大的顺序排序。2. 思路:遍历相邻的2个数字,如果第一个数字大于第二个数字,则第一个数字和第二个数字调换位置。优化点:如果从某两个位置开始,之后都没发生过位置调换,则不需要进行后面的大循环。3. 代码/** * 冒泡排序: 从小到大排序 * 遍历相邻的2个数字,如果第一个数字大于第二个数字,则第一个数字和第二个数字调换位置。 * @Author: KingWang * @Date: 2021/6/9 * @Desc: **/public
2021-06-09 22:25:31
112
原创 算法- java实现走迷宫
迷宫问题:小球从起点绕过障碍物到达终点。实现思路二维数组来表示迷宫约定规则用1表示迷宫四边和障碍物用0表示未走过的路用2表示走通过的路用3表示走过但是走不通的路代码实现难点是移动的方法中的写法,没看过通常不会想到这样写。/** * 走迷宫:从最左上角,走到最右下角 * 移动策略:下 ->右 -> 上 -> 左 * @Author: KingWang * @Date: 2021/6/7 * @Desc: **/public class Migon
2021-06-09 16:57:16
521
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人