
数据结构
MZR--JAVA
这个作者很懒,什么都没留下…
展开
-
位移运算 1.0
相同为0, 不同为 1a^b0 0 01 1 01 0 10 1 0a 1 0 1 1 0b 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 · 98 阅读 · 0 评论 -
快速排序、归并排序、选择排序和插入排序的Java实现
快速排序、归并排序、选择排序和插入排序的Java实现快速排序快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。快速排序又是一种分而治之思想在排序算法上的典型应用。本质上来看,快速排序应该算是在冒泡排序基础上的递归分治法。在平均状况下,排序 n 个项目要 Ο(nlogn) 次比较。在最坏状况下则需要 Ο(n2) 次比较,但这种状况并不常见。事实上,快速排序通常明显比其他 Ο(nlogn) 算法更快,因为它的内部循环(inner转载 2021-10-06 20:38:13 · 116 阅读 · 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 · 92 阅读 · 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 · 185 阅读 · 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 · 196 阅读 · 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 · 96 阅读 · 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 · 277 阅读 · 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 · 59 阅读 · 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 · 264 阅读 · 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 · 69 阅读 · 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 · 124 阅读 · 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 · 64 阅读 · 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 · 65 阅读 · 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 · 80 阅读 · 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 · 86 阅读 · 0 评论