![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法集合
weixin_44515563
这个作者很懒,什么都没留下…
展开
-
数据结构与算法(八)
算法复杂度:时间复杂度 与 空间复杂度主要参考时间复杂度冒泡排序package com.bjsxt.Sort;import java.util.Arrays;/** * 冒泡排序 */public class BubbleSort { public static void main(String[] args){ int[] arr = new int...原创 2019-03-31 19:57:09 · 122 阅读 · 0 评论 -
数据结构与算法(十八)
二叉排序树Node类package com.bjsxt.BinarySortTree;//二叉排序树public class Node { int value; Node left; Node right; public Node(int value){ this.value=value; } /** * ...原创 2019-04-15 20:20:46 · 71 阅读 · 0 评论 -
数据结构与算法(十九)
排序二叉树的查找,删除图中删除7,,,该操作最为繁琐(其他简单操作被包含在里面)构建节点package com.bjsxt.BinarySortTree;//二叉排序树public class Node { int value; Node left; Node right; public Node(int value){ this.va...原创 2019-04-15 20:57:53 · 105 阅读 · 0 评论 -
数据结构与算法(十三)
二叉树的遍历(前序遍历,中序遍历,后序遍历)二叉树的查找(前序查找)二叉树的删除(删除父节点字节的也被删除)package com.bjsxt.tree;public class BinaryTree{ TreeNode root; //设置根节点 public void setRoot(TreeNode root){ this.root=roo...原创 2019-04-12 17:33:58 · 80 阅读 · 0 评论 -
数据结构与算法(二十)
二叉排序树 左旋转 右旋转单旋转:1左旋转2右旋转 双向旋转: 调整排序树,使其最优。(左子树和右子树的高度差的绝对值不大于1)平衡二叉树Node类package com.bjsxt.BinarySortTree;//二叉排序树public class Node { int value; Node left; Node right; public ...原创 2019-04-16 10:45:21 · 91 阅读 · 0 评论 -
数据结构与算法(十)
归并排序对数列进行分组比较,最后递归合并在一起,赋值给原数组用到最小位置,最大位置,中间位置来划分,很有创造性的一个排序方法。对指针或索引之类的要加深理解,考虑移动方向和临界状态,满足特殊情况,一定可以满足一般情况。package com.bjsxt.Sort;import java.util.Arrays;//归并排序public class MergeSort { p...原创 2019-04-03 19:03:36 · 77 阅读 · 0 评论 -
数据结构与算法(十四)
顺序存储的二叉树通常情况只考虑完全二叉树第n个元素的左子节点是:2n+1第n个元素的左子节点是:2n+2第n个元素的左子节点是:(n-1)/2package com.bjsxt.tree;public class ArrayBinaryTree { int[] data; public ArrayBinaryTree(int[] data){ t...原创 2019-04-13 21:30:12 · 77 阅读 · 0 评论 -
数据结构与算法(十五)
堆排序package com.bjsxt.HeapSort;import java.util.Arrays;//堆排序public class HeapSort { public static void main(String[] args){ int[] arr = new int[]{9,6,8,7,0,1,10,4,2}; heapSort...原创 2019-04-13 23:01:28 · 71 阅读 · 0 评论 -
数据结构与算法(十六)
线索二叉树package com.bjsxt.HeapSort;public class ThreadedBinaryTree { ThreadedNode root; //用于临时存储前驱节点 ThreadedNode pre=null; //遍历线索二叉树 public void threadIterate() { //用于临时存储当前遍历节点 Threaded...原创 2019-04-14 14:36:03 · 99 阅读 · 0 评论 -
数据结构与算法(十七)
赫夫曼树实现步骤详解package com.bjsxt.HuffmanTree;public class Node implements Comparable<Node>{ int value; Node left; Node right; public Node(int value){ this.value=va...原创 2019-04-14 17:28:55 · 124 阅读 · 0 评论 -
数据结构与算法(十二)
二叉树测试代码创建树package com.bjsxt.tree;public class BinaryTree{ TreeNode root; //设置根节点 public void setRoot(TreeNode root){ this.root=root; } //获取根节点 public TreeNode get...原创 2019-04-10 23:12:14 · 78 阅读 · 0 评论 -
数据结构与算法(九)
插入排序##package com.bjsxt.Sort;import java.util.Arrays;//插入排序public class InsertSort { public static void main(String[] args){ int[] arr = new int[]{5,3,2,8,9,1,0}; System.out...原创 2019-04-01 15:59:12 · 107 阅读 · 0 评论 -
数据结构与算法(七)
递归:自己调用自己理解容易,用法自己要活用递归基础package com.bjsxt.queue;//递归public class TestRecursive { public static void main(String[] args){ print(3); } public static void print(int i){ ...原创 2019-03-29 12:17:14 · 108 阅读 · 1 评论 -
数据结构与算法(六)
双向循环列表代码实测DoubleNodepackage com.bjsxt.queue;public class DoubleNode { //上一个节点 DoubleNode pre = this; //下一个节点 DoubleNode next = this; //节点数据 int data; public DoubleNode...原创 2019-03-29 11:06:42 · 87 阅读 · 1 评论 -
数据结构与算法(五)
队列:先进先出创建MyQuene类用来测试队列package com.bjsxt.queue;public class MyQueue { int[] elements; public MyQueue(){ elements = new int[0]; } //入队 public void add(int element){ ...原创 2019-03-29 10:37:49 · 105 阅读 · 1 评论 -
数据结构与算法(四)
栈的原理package com.bjsxt.shujujiegou;/**栈的原理*/public class MyStack { //栈的底层我们使用数组来看存储数据 int[] elements; public MyStack(){ elements = new int[0]; } //压入元素 public voi...原创 2019-03-27 10:49:34 · 88 阅读 · 1 评论 -
数据结构与算法(三)
线性查找和二分法查找线性查找package com.bjsxt.shujujiegou;//根据下标查询元素 线性查找public class TestSearch { public static void main(String[] args){ //目标数组 int[] arr = new int[] {2,3,5,6,8,4,9,0}; ...原创 2019-03-27 10:45:54 · 86 阅读 · 1 评论 -
数据结构与算法(二)
1.解决数组长度的不可变问题(数组扩容的思想)package com.bjsxt.shujujiegou;import java.util.Arrays;public class TestOpArray { public static void main(String[] args) { //解决数组的长度不可变的问题 int[] arr = ...原创 2019-03-26 20:21:38 · 92 阅读 · 0 评论 -
数据结构和算法(一)
对一累加到一百的总结!算法就是更方便解决问题的方法!程序的结构package com.bjsxt.shujujiegou;//1到100之和 public class AddOneToHanderd { public static void main(String[] args){ int total = 0; int end = 100; ...原创 2019-03-26 20:03:20 · 121 阅读 · 0 评论 -
栈和队列的定义
栈的定义栈(stack)又称堆栈,它是运算受限的线性表。其限制是允许在表的一端进行插入和删除操作,不允许在其他任何位置进行插入、查找、删除等操作。表中进行插入、删除操作的一端称为栈顶(top),栈顶保存的元素称为栈顶元素。相对的,表的另一端称为栈底(bottom)。当栈中没有数据元素时称为空栈;向一个栈插入元素又称为进栈或入栈;从一个栈删除元素又称为出栈或退栈;由于栈的插入和删除操...原创 2019-03-04 19:39:43 · 352 阅读 · 0 评论 -
数据结构与算法(十一)
基数排序(java实现)先按个位相同的取数,从低到高存储起来;按顺序取出所存储的数据,形成新数组;再按照十位相同的取数,从低到高存储起来;按顺序取出所存储的数据,形成新数组;循环下去,就可由低到高排序成功这个算法利用十进制的数字特性为底层,很有思考价值。可以借助数字的其他内部联系,将他们转化为代码实现,运用。这可能就是形成算法的一个方面吧!package com.bjsxt.Sort;...原创 2019-04-10 21:05:27 · 89 阅读 · 0 评论 -
数据结构与算法(十七)
赫夫曼树编码创建Node类package com.bjsxt.TestHuffmanCode;public class Node implements Comparable<Node>{ Byte data; int weight; Node left; Node right; public Node(Byte data,int wei...原创 2019-04-14 20:50:54 · 129 阅读 · 0 评论