数据结构Java版
JPC客栈
分享Java、Python、C/C++、JavaScript等编程语言的相关知识和应用
展开
-
十大排序算法介绍及其Java代码实现
基于比较的排序算法,常见的有以下几种算法最好最坏平均空间稳定性思想注意事项冒泡排序O(n)O(n^2)O(n^2)O(1)是比较最好情况需要额外判断选择排序O(n^2)O(n^2)O(n^2)O(1)否比较顺序选择元素,交换次数较多,不适合大规模数据堆排序O(nlogn)O(nlogn)O(nlogn)O(1)否选择需要使用到数据结构中的堆插入排序O(n)O(n^2)O(n^2)O(1)是比较对基本有序的数据处理速度较快。原创 2023-09-19 22:30:58 · 573 阅读 · 0 评论 -
数据结构与算法学习Java版-二叉树
二叉树的遍历遍历实现代码:package 数据结构;public class BinaryTreeDemo { public static void main(String[] args) { // TODO 自动生成的方法存根 //先创建二叉树 BinaryTree binaryTree=new BinaryTree(); //创建节点 HeroNode1 root=new HeroNode1(1, "宋江"); HeroNode1 node2=new He...原创 2022-03-06 15:21:29 · 455 阅读 · 0 评论 -
数据结构与算法学习Java版-哈希表
package 数据结构;import java.util.Scanner;public class HashTable { public static void main(String[] args) { // TODO 自动生成的方法存根 HashTab hashTab=new HashTab(7); String key=""; Scanner in=new Scanner(System.in); while(true) { System.o...原创 2022-02-23 21:44:30 · 420 阅读 · 0 评论 -
数据结构与算法学习Java版-查找算法分析与实现
一、线性查找for循环遍历二、二分查找(重要)前提:被查找的数组是有序数组package 数据结构;public class BinarySearch { public static void main(String[] args) { // TODO 自动生成的方法存根 int[] arr= {1,2,3,4,5,6,7,8,9}; int ind=binarySearch(arr, 0, arr.length-1 , 10); System.out.原创 2022-02-21 22:32:43 · 496 阅读 · 0 评论 -
数据结构与算法学习Java版-排序算法介绍和分类
一、时间复杂度和空间复杂度介绍二、冒泡排序冒泡排序算法代码实现package 数据结构;import java.util.Arrays;//冒泡排序public class BubbleSort { public static void main(String[] args) { // TODO 自动生成的方法存根 int [] arr=new int[] {3,9,-1,10,20}; int te...原创 2022-02-21 12:52:41 · 415 阅读 · 1 评论 -
数据结构与算法学习Java版-八皇后问题
package 数据结构;import java.util.Queue;public class Queue8 { //确定有多少个皇后 int max=8; //定义一个数组,保存 int[] array=new int[max]; static int count=0; public static void main(String[] args) { Queue8 queue8=new Queue8(); queue8.check(0);...原创 2022-02-18 11:14:22 · 304 阅读 · 0 评论 -
数据结构与算法学习Java版-前缀、中缀、后缀表达式规则与实现
一、逆波兰表达式(后缀表达式)实现package 数据结构;import java.util.ArrayList;import java.util.Stack;public class PolandNotation { public static void main(String[] args) { // TODO 自动生成的方法存根 //定义逆波兰表达式,数字,符号用空格分开 //(3+4)*5-6 =>3 4 + 5 * 6 - Stri...原创 2022-02-16 17:42:51 · 578 阅读 · 0 评论 -
数据结构学习Java版-栈的基本知识
一、栈的介绍栈是插入和删除只能在同一位置进行的线性表,该位置位于表的末端,称为栈顶(top),不允许插入和删除的一端叫做栈底(bottom)。对栈的基本操作有:压栈(push):向栈顶插入一个元素出栈/弹栈(pop):从栈顶删除一个元素栈的特点:先进后出栈的实现:因为栈是一个表,任何实现表的方法都可以来实现栈,主要有两种方式:链表实现、数组实现。链表实现栈:又叫动态栈,有链表的部分特性,即元素与元素之间在物理存储上可以不连续; 数组实现栈:又叫静态栈;二、栈的实现使用数组原创 2022-02-15 15:08:25 · 443 阅读 · 0 评论 -
数据结构学习Java版-链表的基本知识
一、链表介绍链表是有序的列表; 以节点的方式来存储; 每个节点包含data域,next域:指向下一个节点; 链表的各个节点不一定是连续存放; 链表分为带头节点的和不带头节点的链表;原创 2022-02-09 18:21:24 · 681 阅读 · 0 评论 -
数据结构学习Java版-队列的基本知识
一、队列介绍队列是一个有序的列表,可以用数组或链表实现。特点:先入先出,在队尾添加数据,在队头取出数据。二、数组实现队列package 数据结构;public class ArrayQueue { public static void main(String[] args) { ArrQueue queue=new ArrQueue(3); for(int i=0;i<3;i++) { queue.addQueue(i+1); } q原创 2022-02-02 16:59:03 · 734 阅读 · 0 评论 -
数据结构学习Java版-稀疏数组
一、稀疏数组的介绍当一个数组中大部分元素为0或者为同一个值时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法:记录数组一共有几行几列,有多少个不同的值; 把具有不同值的元素的行列记录在一个较小规模的数组中,从而缩小程序的规模。...原创 2022-01-29 11:15:36 · 876 阅读 · 0 评论