- 1、本文档共47页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
;目录;;14.1算法竞赛简介;14.1算法竞赛简介;;函数的参;函数的参;函数的参;函数的参;最坏情况复杂度表示算法在所有可能输入中运行时间的上界,即在最坏的输入情况下算法的性能。在实际情况中,最坏情况复杂度更常用,因为它提供了对算法性能的一种较为保守和简化的估计。
而平均情况复杂度表示算法在所有可能输入中运行时间的期望值,考虑输入的概率分布。其在表示上用大Θ符号。平均复杂度更能反映算法在实际使用中的性能,通常较难准确计算。;函数的参;函数的参;函数的参;函数的参;函数的参;函数的参;函数的参;;算法设计是计算机科学中的核心部分,它涉及到解决问题的一系列清晰指令。在Java编程中,算法设计方法起着至关重要的作用,因为它可以帮助程序员更有效地编写代码并解决复杂问题。编程竞赛中绝大多数题目都需要选择合适设计方法来得到最优的答案。
14.3.1枚举法
枚举法是一种基础的策略,通过遍历所有可能的解决方案来找到问题的答案。这种方法又称为暴力法或穷举有哪些信誉好的足球投注网站,通常用于问题规模较小或者解决方案的数量有限的情况。枚举法的核心是逐一检查所有可能的选项,直到找到满足条件的解。;枚举法的基本步骤:
(1)明确需要枚举的变量和目标条件
(2)设计枚举的顺序和逻辑
(3)实现算法
(4)分析优化
优点是实现简单,逻辑清晰;
缺点是对于大规模问题而言,计算量巨大,效率低下,往往不适合实际应用。;Copilot指令:
//编写Java程序,找出给定字符串中所有字符出现次数的最大公约数。
//如果字符串为空或者只包含一个字符,则最大公约数应为1。
//如输入:“abca”输出:1解释:字符‘a’出现2次,字符‘b’、‘c’出现1次,最大公约数是1。;publicclassCharacterGCD{
publicstaticintfindGCDOfCharacters(Stringstr){
if(str==null||str.isEmpty()){
return1;
}
?
int[]charCount=newint[26];
//统计每个字符的出现次数
for(charc:str.toCharArray()){
charCount[c-a]++;
}
//枚举所有可能的公约数
for(inti=26;i1;i--){
if(isValidGCD(charCount,i)){
returni;
}
}
return1;
};privatestaticbooleanisValidGCD(int[]charCount,intgcd){
for(intcount:charCount){
if(count%gcd!=0){
returnfalse;
}
}
returntrue;
}
publicstaticvoidmain(String[]args){
Scannerscanner=newScanner(System.in);
Stringinput=scanner.nextLine();
System.out.println(字符串中的字符的最大公约数为:+findGCDOfCharacters(input));
}
};该程序包含两个主要部分:findGCDOfCharacters方法和isValidGCD方法。前者接收一个字符串并返回字符串中所有字符出现次数的最大公约数。如果输入字符串为空或只有一个字符,最大公约数显然是1,因此方法首先检查这种情况。
isValidGCD方法则接受一个整数数组charCount和一个整数gcd作为输入,并返回一个布尔值,指示gcd是否为charCount中所有整数的公约数。它遍历charCount数组并检查每个元素的值是否能被gcd整除。;14.3.2贪心法
贪心法是一种在每一步都采取当前看起来最优的选择,从而希望能导致全局最优解的算法策略。
其设计思想是:对于一个复杂问题,如果它能够被分解成若干个局部问题,而且这些局部问题都容易找到最优解,那么全局问题的最优解就可能来自于这些局部最优解的组合。
您可能关注的文档
- AI赋能Java语言编程:从入门到高阶 课件 第九章 Java的图形用户界面设计.pptx
- AI赋能Java语言编程:从入门到高阶 课件 第八章 Java语言的高级特性.pptx
- AI赋能Java语言编程:从入门到高阶 课件 第二章 Java标识符与数据类型.pptx
- AI赋能Java语言编程:从入门到高阶 课件 第六章 对象与类.pptx
- AI赋能Java语言编程:从入门到高阶 课件 第七章 Java异常处理.pptx
- AI赋能Java语言编程:从入门到高阶 课件 第三章 表达式和流程控制语句.pptx
- AI赋能Java语言编程:从入门到高阶 课件 第十二章 线程.pptx
- AI赋能Java语言编程:从入门到高阶 课件 第十三章 Java的网络功能.pptx
- AI赋能Java语言编程:从入门到高阶 课件 第十五章 AI链无代码生成平台Sapper.pptx
- AI赋能Java语言编程:从入门到高阶 课件 第十一章 Java数据流输入与输出.pptx
文档评论(0)