自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 数据结构与算法:计算斐波那契数

众所周知的斐波那契(Fibonacci)数列问题:     数列:0    1    1    2    3    5    8    13    21    34    55    89...     下标:0    1    2    3    4    5    6     7      8      9     10     11    斐波那契数列从0和1开始,之后的每一个数...

2018-08-06 11:15:30 635

原创 数据结构与算法:汉诺塔

汉诺塔问题是一个经典的递归例子。这个问题是将指定个数而大小互不相同的盘子从一个塔移动到另一个塔上,移动时要遵循以下规则:n个盘子从上到下依次标记为1,2,3,...,n,而三个塔标记为A、B、C。 任何时候盘子都不能放在比它小的盘子的上方。 初始状态时,所有的盘子都放在塔A上。 每次只能移动一个盘子,并且这个盘子必须在塔顶的位置。这个问题的目标是借助塔C把所有的盘子从塔A移到塔B。例如...

2018-08-06 10:16:18 1402

转载 数据结构中堆栈和内存堆栈的区别

最近接触数据结构中的堆栈,想到了初学Java时,关于新实例化或者定义一个对象时候,声明对象,对象的变量名存放在栈内存中,当我们手动new之后,就会在堆内存中开辟一个空间,用来存放变量地址值,并将变量地址告诉栈内存中变量名,从而由栈内存中存放的变量名根据地址值指向堆内存中的地址,也就找到了这个变量,这种链表式的链接方式也叫做引用。那么数据结构中的堆栈和内存中的堆栈是否是一回事?由于纯属自我理解,结合...

2018-07-30 13:14:48 789

原创 数据结构与算法:栈

栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。定义:栈是限定仅在表头进行插入和删除操作的线性表。要搞清楚这个概念,首先...

2018-07-30 13:02:52 434

原创 数据结构与算法:对象排序

前面都是对基本数据类型的数据进行排序,如:冒泡排序,选择排序,插入排序。如何对引用类似的对象进行排序?先封装一个Student类:public class Student { private int stuNo; private String name; private String gender; private int age; public Student(int stu...

2018-07-27 17:26:53 232

原创 数据结构与算法:插入排序

插入排序,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中。核心思想:抽出一个元素,在其前面...

2018-07-27 12:26:59 106

原创 数据结构与算法:选择排序。选择排序与冒泡排序的区别。

选择排序:选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)核心思想:扫描所有元素,得到最小元素,比将最小元素与左边第一个元素进行交换...

2018-07-26 18:49:06 377

原创 数据结构与算法:冒泡排序

冒泡排序:核心思想:比较两个元素,如果前一个比后一个大则进行交换,经过对每个元素的比较,最后将最大的元素设置成最后一个元素,然后重复该操作,最后形成从小到大的排序。    其实,每一趟比较的宗旨就是,把当前这一趟的最大的那个元素放到当前元素的最后,一直重复到所有的都是从小到大。下面是Java代码实现:public class TestBubbleSort {    publi...

2018-07-26 10:31:13 185

原创 数据结构与算法:有序数组和二分法查找

上次学习了数组,不过数组的赋值过程是无序的,是由输入的数值决定的,如下所示://插入    public void insert(int insertKey){        arr[cloum]=insertKey;        cloum++;    }在实际应用中,经常用到有序数组。下面进行简单介绍,相比无序数组,就是在插入一个值的时候,需要先从头比较insertKey...

2018-07-25 16:38:29 507

原创 数据结构学习过程:数组

本文以面向对象编程思想的角度来理解和使用数组,分为两个部分:1.使用自定义类来封装数组;public class MyArray {    private  int[] arr;    //数组的有效长度(数组中实际存储元素的个数)    private int cloum;        public MyArray() {        arr=new int[50]; ...

2018-07-22 11:29:56 177

原创 Java中创建对象的四种方式

目前,四种创可以创建对象的方式分别为:使用New关键字、使用Class类和Constructor类的newInstance方法、使用Clone方法、使用反序列化。下面分别进行简单介绍:1.我们最熟悉最常用的new一个关键对象:2.利用class的反射机制,该种方式适用于有无参构造方法的:3.使用反序列化(对象在内存中的分配方式,使用流的方式将对象序列化在本地硬盘,然后反序列...

2018-07-20 16:37:01 669

原创 递归练习

给出exR1(6)的返回值。public static String exR1(int n){ if(n <=0){ return ""; } return exR1(n-3)+n+exR1(n-2)+n;public class exercise { public static void main(String[] args) { System.out.print("输出结果:...

2018-07-13 11:19:59 278

原创 算法过程学习

最近刚开始接触算法,把每天学到的和写出出来的代码做一个记录。public class isPrime { public static void main(String[] args) { Scanner input =new Scanner(System.in); System.out.print("请输入要判断的自然数:"); int a=input.nextInt(); System...

2018-07-12 21:19:58 248

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除