![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
华生不是花生
这个作者很懒,什么都没留下…
展开
-
数据结构与算法 java实现 概述
从开始接触算法,到现在给我感受最深的是算法为我们的程序注入了灵魂,好的算法有着清晰的思路,充满想象力的方式,通过数学手段结合编程语言从而去实现复杂的功能。在java开发中数据的存储和使用涉及数据结构,不同的数据结构都有着同一个目的,去减少我们获取的存储数据的时间,针对不同的情况使用不同的数据结构可以极大地提高效率。 而算法作为一门类似于数学科学的学科,将其应用于编程,需要对...原创 2018-11-20 15:38:11 · 292 阅读 · 0 评论 -
数据结构与算法-堆排序
1.堆排序,使用了顺序二叉树的相关原理思路:从第一个非子叶节点开始遍历,目标是实现大顶堆,然后把顶与顺序遍历的最后一个元素交换然后依次交换至数组的第一个元素,实现排序package math;import java.util.Arrays;public class heapsort { public static void main(String[] args) { ...原创 2018-11-26 21:53:44 · 128 阅读 · 0 评论 -
数据结构与算法-二叉树
1.普通二叉树treenodepackage math;public class TreeNode { private int data ; private TreeNode lchild ; private TreeNode rchild ; public int getData() { return data; } public void...原创 2018-11-26 21:50:45 · 104 阅读 · 0 评论 -
数据结构与算法-常用排序算法(2)
5.归并排序归并的思想理解:对两个有序的数组, 例如 1,3,5,7 和2,4,6,8,10这样两个数组,可以合并为一个数组通过遍历两个数组再进行比较,把比较结果依次加入用于存储合并后的临时数组 在具体的实现时,相当于帮一个数组无限划分为两份,直到左右各为一份,此时左右是有序的,排序后合并,让之后的每次操作都满足左右有序,利用递归去完成归并 package mat...原创 2018-11-22 20:36:24 · 91 阅读 · 0 评论 -
数据结构与算法-常用排序(1)
交换排序的两种:1.冒泡排序基于从前往后遍历,比较前后的两个,然后根据比较情况决定交换与否package math;import java.util.Arrays;public class BubbleSort { public static void main(String[] args) { int[] arr = new int[]{4,7,2,3,...原创 2018-11-22 19:10:25 · 93 阅读 · 0 评论 -
数据结构与算法-递归
递归 有结束条件方法调用自己本身 eq:波非那切数列package math;public class bfnq { public static void main(String[] args) { System.out.println(new bfnq().bfnq(7)); } public int bfnq(int index){ ...原创 2018-11-20 19:47:31 · 241 阅读 · 0 评论 -
数据结构与算法-链表(1)
1.单链表链表的形成基于节点,和指向下一个节点的索引package math;public class Node { private int data ; private Node nextNode ; public Node(int data){ this.data = data ; } public int getData() { ret...原创 2018-11-20 18:52:51 · 111 阅读 · 0 评论 -
数据结构与算法-栈和队列数组实现
1.栈 先进后出package math;public class arraystack { private int[] elements = new int[0]; //入栈 public void push(int k){ int[] newarr = new int[elements.length+1]; for(int i = 0 ; i<el...原创 2018-11-20 17:47:52 · 110 阅读 · 0 评论 -
数据结构与算法-查找算法
1.线性查找,从头到尾去遍历,找到符合的则返回2.二分法查找 前提:目标数组有序package math;public class dichotomy { public static void main(String[] args) { int[] arr = new int[]{2,5,7,8,9}; int k =new dichotomy().show(a...原创 2018-11-20 17:08:18 · 131 阅读 · 0 评论 -
数据结构与算法-数组
1.数组添加数据数组在使用时会给定具体长度,如果需要添加数据,考虑解决数组的长度不可变的问题 思想:创建一个新的数组,大小比原长度大1 ,将原数组中的内容复制一份到新数组,把要添加的数据加入,最后把这个数组替换原数组。package math;import java.util.Arrays;public class array { public static vo...原创 2018-11-20 16:39:04 · 94 阅读 · 0 评论