
算法与数据结构
文章平均质量分 51
常见算法与数据结构归纳
phs999
这个作者很懒,什么都没留下…
展开
-
链表-单向链表、双向链表、链表反转、删除链表指定指定值
目录单向链表双向链表链表反转删除链表中指定的所有值单向链表package basic.linkedList;public class SingleNode { public SingleNode next; public int value; public SingleNode(int value) { this.value = value; } public static SingleNode reverseS原创 2021-02-22 08:35:23 · 352 阅读 · 2 评论 -
算法对数器
有些问题我们知道怎么算,算法如何写有些问题我们只知道怎么试,即低性能的算法能保证结果正确,据此逐步调试出更高性能的算法。通俗讲对数器就是生成随机样本,使用可靠算法和新算法分别计算结果,并比较结果。结果在大样本下多次比对相同,则新算法认为可靠。下面是一个选择排序的例子:package basic.util;import java.util.Arrays;/** * 对数器 */public class DsqUtil { public stati...原创 2021-02-22 08:10:28 · 371 阅读 · 0 评论 -
冒泡排序
冒泡排序是一种最基本的排序算法,在每轮遍历比较中,比较相邻两个元素的大小,将最大值放置到数组最顶端。比如数组中的初始元素如下:[34,53,12,32,56,17]第一轮遍历:比较相邻元素,大的交换到右边。即34<53不交换,53>12交换。。。比较和交换后得到:[34,12,32,53,17,56]第二轮遍历得到:[12,32,34,17,53,56]...原创 2019-06-16 14:47:47 · 688 阅读 · 0 评论 -
递归关键问题(以递归循环打印1~9为例)
递归的两个关键问题是:1.出口问题,即什么时候结束;2.逻辑相似性。这与循环很相似:for(int i=0;i<10;i++){ system.out.println(i);}循环中“ifor(int i=0;i<10;){ system.out.println(i);}对于打印0~9,递归方法如下:public static int func(int原创 2017-04-30 09:46:23 · 1689 阅读 · 0 评论 -
求阶乘之和 1!+2!+3!+...+10!
用循环较易实现,递归只实现了求单个数的阶乘。代码如下://求 1!+2!+...+10!public class Jiechenghe { public static long func(int num){ //用循环求各阶乘之和 long result=0; long f=1; for(int i=1;i<=num;i++){ f=f*i; //求各个阶乘 r原创 2017-04-29 19:48:44 · 4645 阅读 · 0 评论 -
fibonacii数列(斐波那契数列)的递归实现及循环实现
public class Fibonacii { public static int fibo(int num){ //递归方法 if(num==1||num==2) //定义出口 return 1; return fibo(num-1)+fibo(num-2); //定义相似递归体 } public static int fibo2(int num){ //循环方法原创 2017-04-29 13:41:31 · 1430 阅读 · 0 评论 -
数据结构(1)- 数组
文章目录1、 数组的基本用法2、动手实现数组类的封装(1)泛型存储(2)数组元素的增删改查(3)动态调整数组容量(4)完整程序3、时间复杂度分析(1)添加元素O(n)(2)删除元素O(n)(3)修改元素O(1)(4)查找元素O(n)1、 数组的基本用法 //声明 int [] arr = new int[10];// int [] scores = new int[]{100,99,...原创 2019-04-03 22:11:32 · 209 阅读 · 0 评论