
java数据结构
文章平均质量分 60
&可 乐
总结自己学习的知识
展开
-
归并排序(重要)
认识归并排序归并排序原理图示归并排序原理归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。图示...原创 2021-04-12 16:24:49 · 191 阅读 · 0 评论 -
快速排序(重要)
认识快速排序快速排序原理排序图解快速排序原理从待排序区间选择一个数,作为基准值(pivot);Partition: 遍历整个待排序区间,将比基准值小的(可以包含相等的)放到基准值的左边,将比基准值大的(可以包含相等的)放到基准值的右边;采用分治思想,对左右两个小区间按照同样的方式处理,直到小区间的长度 == 1,代表已经有序,或者小区间的长度 == 0,代表没有数据。排序图解例如:3 9 2 4 1 8 5 3 7 0 6第一步第二步第三步...原创 2021-04-08 22:39:33 · 148 阅读 · 0 评论 -
认识排序算法
排序概念7种基于比较的排序冒泡排序选择排序插入排序希尔排序概念1.排序排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。平时的上下文中,如果提到排序,通常指的是排升序(非降序)。通常意义上的排序,都是指的原地排序(in place sort)。2.稳定性两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算法7种基于比较的排序基于比较的排序,只要求元素之间具备比较的能力我们学习的排序是“就地排序”冒泡排原创 2021-04-07 17:13:50 · 218 阅读 · 0 评论 -
java:认识堆
堆-优先级队列堆堆的概念堆的存储方式堆堆的概念堆(Heap)–二叉树1.逻辑上是二叉树2.实质表现是一个数组如果有一个关键码的集合K = {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足:Ki <= K2i+1 且 Ki<= K2i+2 (Ki >= K2i+1 且 Ki >= K2i+2) i = 0,1,2…,则称为小堆(或大堆)。小堆(大堆):将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小原创 2021-04-01 23:08:40 · 111 阅读 · 0 评论 -
实现函数,该函数接收一个字符串并将该字符串中的大写字母转换成小写字母,之后返回新的字符串
题目:实现函数,该函数接收一个字符串并将该字符串中的大写字母转换成小写字母,之后返回新的字符串)public class Main {public static String toLowerCase(String str) { if (str == null || str.length() == 0) { return str; } char[] ch = str.toCharArray(); for (int i = 0;原创 2021-03-31 23:07:22 · 1691 阅读 · 0 评论 -
二叉树递归实现前中后序的遍历
二叉树的遍历public class TreeTraversal { // preorder traversal前序 public static void preorder(TreeNode root) { if (root == null) { // 根结点不存在 -> 是一棵空树 // 对于空树的前序遍历,什么都不做 return; } System.out.原创 2021-03-30 23:11:51 · 93 阅读 · 0 评论 -
初识二叉树
二叉树树形结构二叉树(重点)二叉树的遍历树形结构数据结构分为线性结构、树形结构、图形结构树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。概念:1.节点的度:一个节点含有的子树的个数称为该节点的度; 如上图:A的为62.树的度:一棵树中,最大的节点的度称为树的度; 如上图:树的度为63.叶子节点或终端节点:度为0的节点称为叶节点; 如上图:B、C、H、I…等节点为叶节点4.双亲原创 2021-03-29 23:32:52 · 367 阅读 · 0 评论 -
有一组数据,只有一个数字是出现一次,其他是两次,请找出这个数字
题目:有一组数据,只有一个数字是出现一次,其他是两次,请找出这个数字代码:public class Main { // 有一组数据,只有一个数字是出现一次,其他是两次,请找出这个数字 public static void main(String[] args) { int arr[]={1,1,2,2,3,4,4,5,5}; ss(arr); } public static void ss(int[]a){ for(int原创 2021-03-26 23:33:14 · 286 阅读 · 0 评论 -
链表原理及部分代码练习
题目:实现函数,该函数接收一个字符串并将该字符串中的大写字母转换成小写字母,之后返回新的字符串)public class Main {public static String toLowerCase(String str) { if (str == null || str.length() == 0) { return str; } char[] ch = str.toCharArray(); for (int i = 0;原创 2021-03-26 23:30:38 · 235 阅读 · 0 评论 -
输入一个非负整数,返回各位数之和(递归)
题目:写一个递归方法,输入一个非负整数,返回组成它的数字之和代码:import java.util.Scanner;public class Main { public static int fan(int n){ int sum=0; if(n<10) { return n; } else { return sum=n%10+fan(n/1原创 2021-03-26 23:18:25 · 608 阅读 · 0 评论 -
初识线性表-顺序表以及ArrayList常见用法
认识线性表和顺序表以及java中的用法线性表和顺序表二级目录三级目录线性表和顺序表线性表(linear list):是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。线性表1.顺序表(逻辑上线性,在内存中存储时,也是严格按照逻辑上的次序保存起来的)2.链表(逻辑上线性,在内存中存储原创 2021-03-24 22:13:47 · 278 阅读 · 0 评论 -
求解时间复杂度和空间复杂度
时间复杂度与空间复杂度文章目录时间复杂度与空间复杂度概述时间复杂度空间复杂度概述时间复杂度与空间复杂度都是用来衡量算法效率的。算法效率分为时间效率(也称为时间复杂度)和空间效率(也称空间复杂度)。时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间,在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。时间复杂度概念:在计算机科原创 2021-03-21 14:27:13 · 320 阅读 · 0 评论