JAVA实现算法设计策略_【数据结构与算法+研一课程ppt】

2024-05-27 14:58

本文主要是介绍JAVA实现算法设计策略_【数据结构与算法+研一课程ppt】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.Fibonacci数列:o(n)

 public static void Fibonacci(int n ){int a = 0;int b = 1;System.out.println(a);System.out.println(b);for (int x = 0;x < n-1 ;x++){int c = a+b;a = b;b = c;System.out.println(c);}}

2.矩阵乘积:o(n[3])

 public static int[][] Matrixmultiplication(int[][] a,int[][] b){int hang = a.length;int lie = b[0].length;int num = a[0].length;int[][] c = new int[hang][lie];for (int x = 0;x<hang;x++){for (int y = 0;y<lie;y++){int count = 0;for (int k = 0;k<num;k++){count = count + a[x][k]*b[k][y];}c[x][y] = count;}}return c;}

此后感觉讲得比较乱,换用研一课程的算法ppt重新开始看;

1.

P多项式时间内可以解决
NPC无法在多项式时间内解决
NP多项式时间内可验证

2.复杂度

o(c) < o (logn) < o(n) < o(nlogn) < o(n[r]) < o(r[n]) < o(n!)

3.贪心算法:局部最优不一定导致全局最优或正确;证明通常采用反证法;

时间安排算法(不带权重):贪心算法,按最早结束时间进行排序,选择不重复的;nlogn
4.分治算法:将问题分为部分,递归的解决部分的问题,部分的问题之间通常不相关,再用线性的时间将其结果合并

整数相加o(n)
整数相乘:xy=2[n] * x1y1+2[n/2](x0y1+x1y0)+x0y0  = 2[n] * x1y1 + 2[n/2]((x1+x0)(y1+y0)-x1y1-x0y0) + x0y0o(n[1.5])
矩阵乘法:T(n) = 7 T (n/2) +dn[2] o(2.8)

5.动态规划:将问题分解为更小的问题,更小的问题之间通常互相联系,通过小问题的解决达到大问题的解决;

带权重的时间安排算法:opt(j) = {vj+opt(P(j)) , opt(j-1)} max;需要暂存中间结果;o(nlogn)

背包问题:opt(i,w) =  { 0 : i = 0; opt(i-1,w) : wi > w ; max{opt(i-1,w),opt(i-1,w-wi) + vi} NPC问题

o(nw)

6.线性规约 

当问题x可以依靠多项式时间的简单操作及多项式次数的Y的解决方案而解决,则x线性规约到y;

y若是多项式时间可解,则x也在多项式时间内可解;



这篇关于JAVA实现算法设计策略_【数据结构与算法+研一课程ppt】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1007807

相关文章

使用Vue-ECharts实现数据可视化图表功能

《使用Vue-ECharts实现数据可视化图表功能》在前端开发中,经常会遇到需要展示数据可视化的需求,比如柱状图、折线图、饼图等,这类需求不仅要求我们准确地将数据呈现出来,还需要兼顾美观与交互体验,所... 目录前言为什么选择 vue-ECharts?1. 基于 ECharts,功能强大2. 更符合 Vue

如何合理使用Spring的事务方式

《如何合理使用Spring的事务方式》:本文主要介绍如何合理使用Spring的事务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、底层构造1.1.事务管理器1.2.事务定义信息1.3.事务状态1.4.联系1.2、特点1.3、原理2. Sprin

springboot+vue项目怎么解决跨域问题详解

《springboot+vue项目怎么解决跨域问题详解》:本文主要介绍springboot+vue项目怎么解决跨域问题的相关资料,包括前端代理、后端全局配置CORS、注解配置和Nginx反向代理,... 目录1. 前端代理(开发环境推荐)2. 后端全局配置 CORS(生产环境推荐)3. 后端注解配置(按接口

使用WPF实现窗口抖动动画效果

《使用WPF实现窗口抖动动画效果》在用户界面设计中,适当的动画反馈可以提升用户体验,尤其是在错误提示、操作失败等场景下,窗口抖动作为一种常见且直观的视觉反馈方式,常用于提醒用户注意当前状态,本文将详细... 目录前言实现思路概述核心代码实现1、 获取目标窗口2、初始化基础位置值3、创建抖动动画4、动画完成后

uniapp小程序中实现无缝衔接滚动效果代码示例

《uniapp小程序中实现无缝衔接滚动效果代码示例》:本文主要介绍uniapp小程序中实现无缝衔接滚动效果的相关资料,该方法可以实现滚动内容中字的不同的颜色更改,并且可以根据需要进行艺术化更改和自... 组件滚动通知只能实现简单的滚动效果,不能实现滚动内容中的字进行不同颜色的更改,下面实现一个无缝衔接的滚动

C#通过进程调用外部应用的实现示例

《C#通过进程调用外部应用的实现示例》本文主要介绍了C#通过进程调用外部应用的实现示例,以WINFORM应用程序为例,在C#应用程序中调用PYTHON程序,具有一定的参考价值,感兴趣的可以了解一下... 目录窗口程序类进程信息类 系统设置类 以WINFORM应用程序为例,在C#应用程序中调用python程序

Java如何根据word模板导出数据

《Java如何根据word模板导出数据》这篇文章主要为大家详细介绍了Java如何实现根据word模板导出数据,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... pom.XML文件导入依赖 <dependency> <groupId>cn.afterturn</groupId>

利用Python实现可回滚方案的示例代码

《利用Python实现可回滚方案的示例代码》很多项目翻车不是因为不会做,而是走错了方向却没法回头,技术选型失败的风险我们都清楚,但真正能提前规划“回滚方案”的人不多,本文从实际项目出发,教你如何用Py... 目录描述题解答案(核心思路)题解代码分析第一步:抽象缓存接口第二步:实现两个版本第三步:根据 Fea

Java应用如何防止恶意文件上传

《Java应用如何防止恶意文件上传》恶意文件上传可能导致服务器被入侵,数据泄露甚至服务瘫痪,因此我们必须采取全面且有效的防范措施来保护Java应用的安全,下面我们就来看看具体的实现方法吧... 目录恶意文件上传的潜在风险常见的恶意文件上传手段防范恶意文件上传的关键策略严格验证文件类型检查文件内容控制文件存储

Go语言使用slices包轻松实现排序功能

《Go语言使用slices包轻松实现排序功能》在Go语言开发中,对数据进行排序是常见的需求,Go1.18版本引入的slices包提供了简洁高效的排序解决方案,支持内置类型和用户自定义类型的排序操作,本... 目录一、内置类型排序:字符串与整数的应用1. 字符串切片排序2. 整数切片排序二、检查切片排序状态: