数据结构与算法
专注于数据结构与算法的相关技术。
二百四十九先森
这个作者很懒,什么都没留下…
展开
-
清晰理解红黑树的演变---红黑的含义
前言红黑树,对不少人来说是个比较头疼的名字,在网上搜资料也很少有讲清楚其演变来源的,多数一上来就给你来五条定义,红啊黑啊与根节点距离相等之类的,然后就开始进行旋转、插入、删除这些操作。一通操作下来,连红色和黑色怎么来的,是什么含义,有什么作用都云里雾里的,能搞清楚就怪了。本文介绍红黑树,暂时不涉及任何代码,只是帮助你理解红黑树的演变来源,树结构中红黑色具体含义,保证...转载 2019-06-30 11:02:14 · 183 阅读 · 0 评论 -
波兰表达式、逆波兰表达式的转换与计算
波兰表达式、逆波兰表达式的转换与计算1、中缀表达式人类最熟悉的一种表达式1+2,(1+2)*3,3+4*2+4等等都是中缀表示法。对于人们来说,也是最直观的一种求值方式,先算括号里的,然后算乘除,最后算加减,但是,计算机处理中缀表达式却并不方便,因为没有一种简单的数据结构可以方便从一个表达式中间抽出一部分算完结果,再放进去,然后继续后面的计算。由此便有了前缀表达式(波兰表达式)和后缀表达式...原创 2019-04-02 17:25:33 · 1996 阅读 · 0 评论 -
java中双向链表的简单模拟
具体代码实现节点Node类:public class Node { /* * 三个属性分别对应节点的头部,中部,尾部。 * 头部存上一个节点的地址,尾部存下一个节点的地址 * 中部存可能是任何类型的数据 */ private Object pre; private Object obj; private Object next; //无参构造 p...原创 2018-12-11 08:07:17 · 168 阅读 · 0 评论 -
快速排序代码
import java.util.Arrays;public class QuickSort { public static void main(String[] args) { int []arr= {1,41,6,2234,122,32,1123,23,1212,3,42,543,12,43,1,44,65,14,2}; sort(arr,0,arr.length-1)...原创 2018-12-10 20:12:58 · 169 阅读 · 0 评论 -
快速排序(过程图解)
假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放在6的右边,比基准数小的数放在6的左边,类似下面这种排列。 3 1 2 5 4 ...转载 2018-12-10 14:55:38 · 94600 阅读 · 45 评论 -
利用二分法结合递归查找数组中的元素的下标
注意:由于二分法只适用于有序数组的元素查找,对于无序数组,我们必须先对其进行排序。数组可由Math.random()方法结合循环自动生成一个固定长度的int数组,然后调用Arrays.sort()方法对其排序,然后得到我们想要的有序int数组第一种方法:不使用递归import java.util.Arrays;import java.util.Scanner;public cl...原创 2018-12-05 13:22:35 · 2567 阅读 · 0 评论 -
冒泡排序和选择排序
冒泡排序package 排序算法;import java.util.Arrays;import org.junit.Test;/** 冒泡排序:*从 arr[0]起,前一个依次和后一个比,谁大谁放后面,直到最后一个元素,确定最大的*从 arr[0]起,前一个依次和后一个比,谁大谁放后面,直到次后个元素,确定第二二的*从 arr[0]起,前一个依次和后一个比,谁大谁放后面,直...原创 2018-12-04 13:43:39 · 206 阅读 · 0 评论