
算法设计与分析(java语言实现)
基础、常用算法
Austinu
贵有恒,何必三更起五更眠。最无益,只怕一日曝十日寒。
展开
-
实现pathListToMap, 能够将输入的pathList转化为具有层级结构的map类型
java笔试题递归原创 2022-08-21 21:03:27 · 947 阅读 · 0 评论 -
稳定排序和不稳定排序
稳定排序和不稳定排序待排序的记录序列中可能存在两个或两个以上关键字相等的记录。排序前的序列中Ri领先于Rj(即i<j).若在排序后的序列中Ri仍然领先于Rj,则称所用的方法是稳定的。比如int数组[1,1,1,6,4]中a[0],a[1],a[2]的值相等,在排序时不改变其序列,则称所用的方法是稳定的。其次,说一下稳定性的好处。排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。基数排序就是这样,先按低位排序,逐次按高位排序,低位相同的元素其转载 2021-11-25 14:37:53 · 226 阅读 · 0 评论 -
os.银行家算法--Java实现
源代码如下:package os课设;import java.util.ArrayList;import java.util.Scanner;public class Banker_Algorithm { /** 3 5 3 3 2 0 1 0 2 0 0 3 0 2 2 1 1 0 0 2 7 ...原创 2020-04-26 20:29:01 · 245 阅读 · 0 评论 -
整数后移
整数回退n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。* 写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数。输入 input输入数据的个数n n个整数 移动的位置m输出 output移动后的n个数样例输入 sample input101 2 3 4 5 6 7 8 9 102样例输出 sample output9 10 1 2 3 ...原创 2019-11-07 17:39:39 · 616 阅读 · 0 评论 -
快速排序递归实现
快速排序递归实现原创 2019-06-16 18:18:33 · 177 阅读 · 0 评论 -
归并排序 -- Comparable接口实现
归并排序 -- Comparable接口实现原创 2019-06-11 23:03:07 · 272 阅读 · 1 评论 -
算法设计与分析---时间任务安排问题
问题描述具有截止时间和误时惩罚的任务安排问题可描述如下。(1) 给定 n 个任务的集合 S={1,2,…,n}S={1,2,…,n};(2) 完成任务i需要titi 时间,1≤i≤n1≤i≤n;(3) 任务 i 的截止时间 didi ,1≤i≤n1≤i≤n,即要求任务 i 在时间 didi 之前结束;(4) 任务 i 的误时惩罚 wiwi ,1≤i≤n1≤i≤n,即任务 i 未在时间di...原创 2019-07-01 07:43:15 · 4604 阅读 · 1 评论 -
贪心算法应用--单位时间任务时间表问题
public class 单位时间任务时间表问题 {public static int greedJob(int[] d,int[] w,int[]job){int n = d.length -1;d[0] = 0;job[0] = 0;int k = 1;job[1] = 1;for (int i=2; i<=n; i++){int r = k;while ((d[j...原创 2019-07-19 13:56:19 · 2099 阅读 · 0 评论 -
输入一个链表,输出该链表中倒数第k个结点。
好奇怪,在idea上面编译运行没问题!!!但是牛客网上面过不了!!有朋友提醒一下为啥在牛客网编译会出现这样的提示么,已经出现两次,但是还是手足无措,求指教,万分感谢:idea:牛客网:import java.util.Scanner;//输入一个链表,输出该链表中倒数第k个结点public class Solution8 { private class ListNode{ ...原创 2019-08-18 21:02:13 · 611 阅读 · 0 评论 -
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
这个也是在idea运行结果正确,但是牛客网都无法编译!!!import java.util.ArrayList;import java.util.Scanner;//输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 class ListNode{ int val; ListNode next = null; public int getVal (...原创 2019-08-18 21:05:19 · 176 阅读 · 0 评论 -
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方---递归实现
注意,这个题有坑,除坑措施都在代码中:import java.util.Scanner;public class Solution {public double Power(double base, int exponent) {if (base == 0) return 0;else if (exponent == 0 && base != 0) return 1;e...原创 2019-08-19 20:26:42 · 240 阅读 · 0 评论 -
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
import java.util.Scanner;public class Solution {public int RectCover(int target) {if (target == 0) return 0;if (target == 1) return 1;if (target == 2) return 2;else return RectCover ( target-1 )...原创 2019-08-19 20:58:01 · 192 阅读 · 0 评论 -
归并排序 -- 非接口实现
归并排序 -- 非接口实现原创 2019-06-11 22:59:59 · 152 阅读 · 1 评论 -
生成10个1到20之间的不重复的随机数并降序输出
package DailyWork;import java.util.Random;/**生成10个1到20之间的不重复的随机数并降序输出*/public class DayJune_tenth {public static void main(String[] args) {Random r = new Random(1);int[] a = new int[10];for ...原创 2019-06-10 18:14:08 · 540 阅读 · 0 评论 -
打印所有不超过n,且n小于256的,其平方具有对称性质的数
打印所有不超过n,且n小于256的,其平方具有对称性质的数原创 2019-05-11 10:28:09 · 1952 阅读 · 1 评论 -
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。 求该青蛙跳上一个n级的台阶总共有多少种跳法
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。 求该青蛙跳上一个n级的台阶总共有多少种跳法原创 2019-05-11 14:52:40 · 359 阅读 · 1 评论 -
算法练习小题
算法练习小题原创 2019-05-11 14:53:28 · 197 阅读 · 1 评论 -
Java十进制转换为二进制算法
Java十进制转换为二进制算法原创 2019-05-11 14:55:21 · 2683 阅读 · 0 评论 -
将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。多组数据,每行为一个长度不超过30位的十进制非负整数(注意是10进制数字的个数可能有30个,而非30bits的整数)
import java.util.Scanner;/**将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。多组数据,每行为一个长度不超过30位的十进制非负整数。(注意是10进制数字的个数可能有30个,而非30bits的整数)每行输出对应的二进制数。@author dell*/public class Day1502 {//输入一个整数,输出该数二进制表示中1的个...原创 2019-05-12 00:35:51 · 1966 阅读 · 0 评论 -
向数组中插入元素算法
import java.util.Scanner;public class 向数组中插入元素算法 {public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.println("输入数组长度:"); int m = s.nextInt(); int[] a = new...原创 2019-05-12 17:47:26 · 1143 阅读 · 0 评论 -
最长公共子序列--求最长公共子串长度
最长公共子序列算法应用非常广泛:比如染色体中DNA片段的的研究,基于最长公共子序列的微博谣言溯源研究等等。所以掌握与应用该基础算法是十分必要的。原创 2019-05-15 17:36:57 · 1206 阅读 · 1 评论 -
最长公子序列的求解--自底向上求最长公共子串
package 动态规划;public class 备忘录法求最长公共子串长度 {//缺点是复杂度与自底向上的算法一样,但实际上更占资源,时间上慢public static int lcs(char[] x,char[] y,int i,int j,int[][] bak){if(bak[i][j] != -1) return bak[i][j];if(i == 0 || j == 0...原创 2019-05-22 18:51:35 · 334 阅读 · 0 评论 -
两个矩阵相乘算法
二维数组矩阵相乘原创 2019-06-03 17:03:19 · 6519 阅读 · 2 评论 -
矩阵连乘算法
矩阵连乘算法原创 2019-06-09 21:53:54 · 357 阅读 · 1 评论