算法
木易三水良
这个作者很懒,什么都没留下…
展开
-
基数排序法(桶排序)
基数排序(桶排序)介绍:基数排序(radix sort)属于“分配式排序”,又称桶子法,它是通过键值的各个位的值,将要排序的元素分配到某些“桶”中,达到排序的作用基数排序法是属于稳定性排序,基数排序法是效率高的稳定性排序法。基数排序是桶排序的扩展。基数排序是1887年赫尔曼·何乐礼发明的,它是这样实现的:将整数按位数切割成不同的数字,然后按每个位数分别比较。基本思想:将所有待比较...原创 2020-01-15 14:44:32 · 714 阅读 · 0 评论 -
快速排序法
基本介绍:快速排序(QuickSort)是对冒泡排序的一种改进。基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。代码示例:实现快速超找的方式有多种,此处只列举两种思维方式填坑法 private static...原创 2020-01-17 16:03:31 · 793 阅读 · 0 评论 -
选择排序法
基本思想:第一次从array[0]~~array[n-1](n = array.length)中选取最小值(升序,选取最小值,如果是降序,则选取最大值),与array[0]交换;第二次从array[1]~~array[n-1]中选取最小值,与array[1]交换,依次类推,直到选取array[n-2]~~array[n-1]中的最小值与array[n-2]交换,至此,排序完成,一共进行n-1次。...原创 2020-01-13 17:36:28 · 242 阅读 · 0 评论 -
插入排序法
基本介绍:插入排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以到达排序的目的基本思想:把N个待排序的元素看成为一个有序表和无序表,开始时,有序表中只包含一个元素,无序表中包含N-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。示例代码 private...原创 2020-01-15 15:48:02 · 138 阅读 · 0 评论 -
冒泡排序法
基本介绍通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前向后移动,如同水底下的气泡一样逐渐向上冒;因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序的过程中设置一个标志flag判断元素是否进行过交换,从而减少不必要的比较。eg:array={9,7,-1,4,3},举例说明如...原创 2020-01-13 17:08:39 · 253 阅读 · 0 评论 -
图的深度优先算法以及广度优先算法
def dfs(isConnected): # 获取当前节点的邻居节点 def _get_first_neighbor(isConnected, cur_point): j = len(isConnected) - 1 neighbor = [] while j >= 0: if isConnected[cur_point][j] == 1 and cur_point != j: n原创 2021-01-25 16:39:16 · 104 阅读 · 0 评论 -
动态规划一次性背包问题(python)
def one_bag(weight, value, max_weight): pre_max_value = [0] * (max_weight + 1) count = 0 # 对物品的价值进行循环 for v_inx, v_val in enumerate(value): max_value = [0] * (max_weight + 1) # 物品重量 val_weight = weight[v_inx]原创 2020-12-31 10:20:25 · 187 阅读 · 2 评论 -
二维数组的螺旋遍历
原理及遍历结果如图所示:示例代码private static List<Integer> spiralArray(int[][] array) { // 数组为空,返回null if (array.length == 0 || array[0].length == 0) { return null; } // 获取循环遍历的次数,取行、列中的最小值的1/2 int temp = (M.原创 2020-12-11 15:23:57 · 681 阅读 · 0 评论 -
字符串匹配算法大全JAVA版(BF、RK、BM以及KMP代码理解)
如果对这几个算法的原理尚有疑问,推荐文章字符串匹配算法原理BF算法(暴力算法)private static int bfSearch(String desString, String subString) { if (desString == null || subString == null) { return -1; } // 1、主串长度 int m = desString.length();原创 2020-12-09 16:49:05 · 1243 阅读 · 0 评论