随笔分类 -  java 算法

摘要:1.合并数列算法代码 public List<Integer> merge(List<Integer> A,List<Integer> B){ int i = 0,j = 0; List<Integer> C = new ArrayList<Integer>(); while(i<A.size() 阅读全文
posted @ 2021-07-06 00:38 网抑云黑胶SVIP用户 阅读(277) 评论(0) 推荐(0)
摘要:4.两种方法求最小生成树(第三题的有向图变无向图) 阅读全文
posted @ 2021-06-11 17:49 网抑云黑胶SVIP用户 阅读(197) 评论(0) 推荐(1)
摘要:1.使用基数排序的思想排序元素 3289 1615 6743 8881 0517 6819 9917 0124 个位数桶: 8881 6743 0124 1615 0517 9917 3289 6819 十位数桶: 1615 0517 9917 6819 0124 6743 8881 3289 百位 阅读全文
posted @ 2021-05-18 23:10 网抑云黑胶SVIP用户 阅读(184) 评论(0) 推荐(0)
摘要:必要知识: find(x):寻找元素 x 所在集合 union(x,y):把元素 x 和元素 y 所在集合合并成一个集合,比较x和y,谁大谁为父节点,相同则谁都行 union(x,y)操作: 若 x 和 y 是当前森林中两棵不同树的根结点, 如果 rank(x) > rank(y) 把 x 作为 y 阅读全文
posted @ 2021-05-06 23:43 网抑云黑胶SVIP用户 阅读(319) 评论(0) 推荐(0)
摘要:首先有数列:3097、3673、2985、1358、6138、9135、4782、1367、3684、0139 分别按个位十位百位入0-9的桶,直到千位出桶完就能得到排好序的数列 按关键字中的数字 d1,把 L 中的元素分布到链表情况: L0 L1 L2 L3 L4 L5 L6 L7 L8 L9 4 阅读全文
posted @ 2021-05-06 23:32 网抑云黑胶SVIP用户 阅读(182) 评论(0) 推荐(0)
摘要:主元素判断:当一个元素在数组中占一半以上的元素。 思维:int nums[] = {3,1,3,2,3,3,4,3}; (1)初始计数器为1,当遇到相同的时候+1,不同时-1 (2)剩余两种情况,一种是返回的元素很有可能是主元素,也可能不是 (3)还有一种是计数器为0,说明数组是偶数,不存在主元素 阅读全文
posted @ 2021-04-22 19:27 网抑云黑胶SVIP用户 阅读(171) 评论(0) 推荐(0)
摘要:递归步骤: 1.首先分析基础步骤,也就是特殊情况,写出特殊情况 2.调用递归体进行相同的递归调用自身,把相同的大问题变换成小问题 问题1: 当n=0的时候返回1;当n>0的时候,n(n-1)。 相当于这种情况的时候我们可以调用递归体,代码如下: int factorial(int n){ if(n= 阅读全文
posted @ 2021-04-09 23:15 网抑云黑胶SVIP用户 阅读(121) 评论(0) 推荐(0)
摘要:1.选择排序:5,1,128,96,76,2 (1)1,5,128,96,76,2 (2)1,2,128,96,76,5 (3)1,2,5,96,78,128 (4)1,2,5,78,96,128 (5)1,2,5,78,96,128 选择排序:找到最小的元素,插入到有序区,有序区是没有元素的,插入 阅读全文
posted @ 2021-03-28 21:53 网抑云黑胶SVIP用户 阅读(185) 评论(0) 推荐(0)
摘要:选择排序理论: 1.选择排序分为有序区和无序区 2.有序区初始为没有,第一趟找出最小的元素,与第一个元素进行交换,依次类推 3.一个进行n-1趟排序 4.首先,需要进行遍历n次找出最小,也需要进行n次比较,故时间复杂度为n^2 代码: package lianxi; import java.util 阅读全文
posted @ 2021-03-26 11:21 网抑云黑胶SVIP用户 阅读(112) 评论(0) 推荐(0)
摘要:冒泡排序理论: 1.也是分为有序区和无序区,有序区是每一趟产生一个,在结尾处 2.两两(i和i+1)之间进行比较,把大的内容交换到i+1位置处 3.也是需要进行n-1躺 4.需要比较n次,并且需要n躺,所以时间复杂度也是n^2 java代码: package lianxi; import java. 阅读全文
posted @ 2021-03-26 11:20 网抑云黑胶SVIP用户 阅读(112) 评论(0) 推荐(0)
摘要:理论: 1.是利用分治法的思想,两两有序序列,再利用合并算法变为一个有序序列 2.有n个元素,那么就需要2^x=n,这个x就是需要几趟 3.需要进行n次合并,那么时间复杂度就是nlogn 方法一代码部分: package lianxi; import java.util.ArrayList; imp 阅读全文
posted @ 2021-03-21 12:29 网抑云黑胶SVIP用户 阅读(139) 评论(0) 推荐(0)