数据结构
MZR--JAVA
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
位移运算 1.0
相同为0, 不同为 1 a^b 0 0 0 1 1 0 1 0 1 0 1 0 a 1 0 1 1 0 b 0 0 1 1 1 ^ 1 0 0 0 1 还可以理解为 无进位相加 1+1 =0 1+0=1 0+0=0原创 2021-10-15 19:55:59 · 113 阅读 · 0 评论 -
快速排序、归并排序、选择排序和插入排序的Java实现
快速排序、归并排序、选择排序和插入排序的Java实现 快速排序 快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。 快速排序又是一种分而治之思想在排序算法上的典型应用。本质上来看,快速排序应该算是在冒泡排序基础上的递归分治法。 在平均状况下,排序 n 个项目要 Ο(nlogn) 次比较。在最坏状况下则需要 Ο(n2) 次比较,但这种状况并不常见。事实上,快速排序通常明显比其他 Ο(nlogn) 算法更快,因为它的内部循环(inner转载 2021-10-06 20:38:13 · 137 阅读 · 0 评论 -
合并2个有序数组
import java.lang.reflect.Array; import java.util.Arrays; public class SortMain { public static void main(String[] args) { // 定义升序数组 int[] a = { 1, 4, 6, 7, 8 }; int[] b = { 2,3,4, 5, 6, 9, 10 }; int[] c = { 20,40,100 }原创 2021-10-05 22:25:15 · 113 阅读 · 0 评论 -
子序列问题
子序列 是值 一个字串 中 非连续 的 字串 ;字串: 123456789 子序列a: 13579(非连续) 字串b : 12345(连续) ** 子串 问题 ** 1.求最大子串 ** class Solution { public int lengthOfLIS(int[] nums) { int get=vector(nums,0,nums.length-1); return get; } //就最大子串 public int vector(int[] nums,int be原创 2021-09-20 12:33:21 · 220 阅读 · 0 评论 -
实现一个栈, 栈 带有 出栈 入栈 取最小元素 时间复杂度为o(1)
package shujujiegou.Stack; import java.util.Stack; /* 实现一个栈, 栈 带有 出栈 入栈 取最小元素 时间复杂度为o(1) */ public class GetStack { //主栈 private Stack mainStack=new Stack<>(); //辅助栈 private Stack minStack=new Stack<>(); public static void main(String[] args)原创 2021-09-21 12:09:32 · 221 阅读 · 0 评论 -
计数排序 和 桶排序
package shujujiegou.Quit; import java.util.Arrays; /** 计数排序 */ public class CountSort { public static void main(String[] args) { int[] array=new int[]{4,2,5,1,5,23,78,8,5,8,49,9,0,0,5,2,2}; System.out.println(Arrays.toString(array)); //得到更新后的数组 int[] s原创 2021-09-19 11:26:24 · 118 阅读 · 0 评论 -
快速排序---双边循环法,单边循环法 , 非递归法
package shujujiegou.Quit; import java.util.Arrays; /* 快速排序 双边 循环 法 */ public class QuitSort { public static void main(String[] args) { int[] array=new int[]{4,4,6,5,3,2,8,1}; QuitSort quitSort=new QuitSort(); quitSort.QuitSort(array,0,array.len原创 2021-09-19 02:53:50 · 299 阅读 · 0 评论 -
冒泡排序和鸡尾酒排序
package shujujiegou.Sort; import shujujiegou.数组.Array; import java.util.Arrays; public class MPsort { public static void main(String[] args) { int[] arry=new int[]{2,4,6,4,24,8,9}; MPsort sort=new MPsort(); //冒泡排序 sort.MPsort(arry); //鸡尾酒排序 sort.JWsort(arr原创 2021-09-19 02:53:18 · 82 阅读 · 0 评论 -
数组的中间插入 和 中间删除
package shujujiegou; public class Array { public static void main(String[] args) { Array a = new Array(); /* int[] array = new int[8]; array[0] = 10; array[1] = 11; array[2] = 12; array[3] = 13; array[4] = 14; final int[] insert原创 2021-09-18 10:21:22 · 289 阅读 · 0 评论 -
单链表 双链表实现
package NODE; public class NodeController { //头节点指针 private Node head; //尾节点指针 private Node last; //链表实际长度 private int size; public static void main(String[] args) { NodeController mynode=new NodeController(); //链表的插入 mynode.insert(0,0); m原创 2021-09-18 10:20:23 · 86 阅读 · 0 评论 -
队列入队出队
package Queue; public class MyQueue { int[] array=new int[6]; //队头 private int fornt; //队尾 private int last; public static void main(String[] args) throws Exception { MyQueue myQueue=new MyQueue(); //入队 myQueue.enQueue(1); myQueue.enQueue原创 2021-09-18 10:18:32 · 141 阅读 · 0 评论 -
二叉树的遍历
package shujujiegou.二叉树; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.Stack; /** 实现 前序遍历 中序遍历 后序遍历 */ public class TreeNodeMain { public static void main(String[] args) { LinkedList linkedList = new原创 2021-09-18 10:17:19 · 85 阅读 · 0 评论 -
最大优先队列 由 二叉堆的最大堆完成。
package shujujiegou.二叉树; import java.util.Arrays; import java.util.PriorityQueue; /* 最大优先队列 由 二叉堆的最大堆完成。 */ public class PriorityQueueMax { private int[] array; private int size; public PriorityQueueMax() { //队列初始化长度为32 this.array =new int[32];原创 2021-09-18 10:16:50 · 86 阅读 · 0 评论 -
二叉堆实现
package shujujiegou.二叉树; import java.util.Arrays; public class BinaryHeap { public static void main(String[] args) { int[] array=new int[]{1,3,2,6,5,7,8,9,10,0}; updateJust(array); System.out.println(Arrays.toString(array)); array=new int[原创 2021-09-18 10:16:15 · 100 阅读 · 0 评论 -
判断链表是否有环 环距 入环点
package shujujiegou.Node; public class Node { private Node next; private int data; public Node(int data) { this.data = data; } public static void main(String[] args) { Node node1=new Node(1); Node node2=new Node(4); Node node3=new Node(3)原创 2021-09-19 21:40:43 · 108 阅读 · 0 评论
分享