![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法与数据结构
文章平均质量分 59
以Java语言为主,算法与数据结构相关
男孩李
被人嘲笑的梦想,越有实现的价值!
展开
-
java之插入排序
1.插入排序介绍插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。插入排序(Insertion Sorting〉的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。2.插入排序思路图 3.代码实现...原创 2021-08-10 12:18:12 · 94 阅读 · 0 评论 -
递归、分治法、动态规划、贪心算法的区别
分治算法介绍分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……分治法在每一层递归上都有三个步骤:1)分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题2)解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题更多Jav原创 2021-08-04 11:39:26 · 1153 阅读 · 0 评论 -
java之冒泡排序(Bubble Sorting)
1.冒泡排序(Bubble Sorting)的基本思想通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就像水底下的气泡一样逐渐向上冒。优化:因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置一个标志 flag判断元素是否进行过交换。从而减少不必要的比较。(这里说的优化,可以在冒泡排序写好后,在进行)2.演示冒泡排序的过程 ...转载 2021-07-30 15:15:08 · 129 阅读 · 0 评论 -
快速排序算法之java版(单路、双路、三路)
编辑某个文件vim 文件名shift+g // 移动到编辑文件的末尾原创 2021-07-11 16:25:23 · 370 阅读 · 0 评论 -
C语言实现水仙花数
算法描述:水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身。例如:152 = 1^3+5^3+3^3。本题要求编写程序,计算所有N位水仙花数。输入格式:输入在一行中给出一个正整数N(3<=N<=7)。输出格式:按递增顺序给出所有N位水仙花数,每个数字占一行。输入样例:3输出样例:153370371407...原创 2020-03-10 10:38:15 · 3818 阅读 · 0 评论 -
java经典算法——筛选法查找100以内的素数
筛选法,是指从小到大筛去一个已知素数的所有倍数。例如:根据2,我们筛选去4,6,8,....,98,100等数,然后根据3,我们可以筛选9,15,...99等数(注意此时6、12等数早就被筛去了),由于4被筛去了,下一个用于筛选的素数是5,以此类推,最后剩余的就是100以内的素数。 首先定义一个int类型的数组int[] a,初始化整个数组,全部初始化为1,第二步双重循环,从2开始...原创 2018-04-17 20:25:09 · 2599 阅读 · 0 评论