![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
JAVA 为主的 数据结构与算法
ZhongJinHacker-
这个作者很懒,什么都没留下…
展开
-
排序算法分类
排序分类内部排序:指将所有数据加载到内存中进行排序插入排序:1.直接插入排序 2.希尔排序选择排序:1.简单选择排序 2.堆排序交换排序:1.冒泡排序 2.快速排序归并排序基数排序外部排序:内存 + 磁盘时间频度介绍: 一个算法花费的时间与算法中语句执行的次数成正比例。哪个算法中语句执行次数越多,它话费的时间就多。一个算法中的语句执行次数成...原创 2020-03-04 09:03:43 · 108 阅读 · 0 评论 -
冒泡排序
冒泡排序规则一共继续数组大小-1次的循环每一趟排序的次数逐渐减小每次都走一遍,不断交换,选出最大的值 public void bubboSort(int[] arr) { // 一共执行数组长度次 for (int i = 0; i < arr.length; i++) { // 每次执行次数比上次少1,因为...原创 2020-03-02 08:54:16 · 105 阅读 · 0 评论 -
约瑟夫算法问题
题目描述n 个人围成一圈,从第一个人开始报数,数到 m 的人出列,再由下一个人重新从 1 开始报数,数到 m 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。输入格式输入两个整数 n,m。输出格式输出一行 n 个整数,按顺序输出每个出圈人的编号1≤m,n≤1001\leq m, n \leq 1001≤m,n≤100样例输入10 3; 输出3 6 9 2 7 1...原创 2020-03-01 12:36:24 · 272 阅读 · 0 评论 -
单链表反转
分别用递归和循环两种方式实现public class ListNode { int num; ListNode next;}// 循环反转public ListNode reverseList(ListNode head) { if (head == null || head.next == null) { return head; } ListNode fi...原创 2020-02-29 08:53:52 · 410 阅读 · 0 评论 -
从尾到头打印单链表
两种解法:递归循环public class ListNode { int num; ListNode next;}// 递归方式public void reversePrintList(ListNode node) { if (node == null) return; reversePrintList(node.next); System.out.print...原创 2020-02-28 08:20:30 · 92 阅读 · 0 评论 -
求单链表节点个数
这里用两种方式来解决递归循环public class ListNode { int num; ListNode next;}// 递归方式public int getSingleLinkedListNodeCount(ListNode node) { if (node == null) return 0; if (node.next == null) return...原创 2020-02-27 08:30:24 · 4391 阅读 · 0 评论 -
JAVA数据结构与算法——环形队列
队列介绍队列是一个有序列表,可以用 数组 或 链表 来实现先进先出(FIFO),即先存入队列的数据,会先取出。后存入的数据后取出数组实现环形队列实现原理定义两个指示器,一个指示器front数组记录第一个有效元素的位置;一个指示器tail记录最后一个有效原始的位置的后一位;实际申请空间为 maxSize + 1(赋予成员变量maxSize);多出的这一空间作为留白,即tail指示的...原创 2020-02-23 17:45:22 · 172 阅读 · 0 评论 -
JAVA数据结构与算法——稀疏数组
稀疏数组当一个数据中大部分元素都是0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:记录数组一共有几行几列和一共有多少个值把具有不同过值的元素的行列及值记录在一个小规模的数组中,从而起到缩小数据大小的规模的作用。比如:棋盘位置问题000000000000120000000001200000000012000000000000000000000...原创 2020-02-21 08:51:24 · 137 阅读 · 0 评论