![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习
一行代码的自述
这个作者很懒,什么都没留下…
展开
-
排序之--冒泡排序
冒泡排序:从大排到小;所谓冒泡,是指通过两两比较,将最大的数或者最小的数先冒出来。例如数组:arr[] = {53,48,80,98};arr[0]跟arr[1]比较,将大的放在arr[0]上,小的放在arr[1]上,通过循环,最小的放在了最后,这样一来,第二轮循环的时候,最小的就可以不用考虑他了,代码如下:public class sort{ public void maoPao(int []a...转载 2018-03-14 21:33:23 · 153 阅读 · 0 评论 -
复制含有随机指针节点的链表~哈希表的使用~(⌒▽⌒)
题目意思就是说给你给head 的Node节点(这是一个比较特殊的链表),来拷贝出它地结构出来。方法一:借助HashMap的特性,定义一个HashMap<Node,Node> map对象,key和value都是value类型 ,key来存旧的链表,value来存新的链表。最后利用老节点和新节点的对应关系来实现一个拷贝新的链表。对于理解哈希表的同学来说,应该不难理解,code也比较容易: ...原创 2018-04-12 16:00:04 · 666 阅读 · 0 评论 -
将单向链表按某值划分成左边小、 中间相等、 右边大的形式~迎娶是挺
这道题一开始想到的方法可能就是patition方法了,大概思路我说一下,先把这个链表存为数组(说明其空间复杂度为0(1)),然后在对这个数组进行patition,即定义两个指针,一个指向数组的-1位置small,一个指向数组的arr.length位置big,然后来与value比较,比较之后有三种情况:1. arr[index] < value,这个时候,swap(arr, index++,+...原创 2018-04-11 22:00:36 · 262 阅读 · 0 评论 -
透彻理解回文~单链表的逆序~
判断一个单链表是不是回文,主要有三种方法,不过如果要考虑空间复杂度的话,就只有常用的一种方法了。这种方法很考验一个人的细心以及编程能力~前两种方法比较简单我就不祥述了~主要讲一下最后一种方法:直接上图了~下面附上code:public static class Node { public int value; public Node next; public Node(int data) {...原创 2018-04-08 16:33:03 · 271 阅读 · 0 评论 -
打印两个有序链表的公共部分~~
类似与归并排序,这里就不再赘述了~原创 2018-04-08 09:44:07 · 183 阅读 · 0 评论 -
在行列都排好序的矩阵中找数
对于这种题,首先要读懂该题的题意,首先是有序的,然后就判断K是否存在数组中。仔细研究这个题之后不难发现一个规律,咱们定义右上角的坐标为(row,col)则有如下规律:程序如下:...原创 2018-04-08 09:04:12 · 125 阅读 · 0 评论 -
“之”字形打印矩阵~
编程如下:欢迎大家前来讨论~public class PrintMatirx { public static void main(String args[]) { int arr[][] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }; printZigMatrix(arr); } public static void print...原创 2018-04-07 21:18:26 · 572 阅读 · 0 评论 -
转圈打印矩阵~~
下面附上程序,欢迎各位前来讨论:public class printMatrixSpiralOrder { public static void main(String args[]) { int arr[][] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 }, { 13, 14, 15, 16 } }; orderPrint(arr...原创 2018-04-07 20:07:20 · 241 阅读 · 1 评论 -
排序算法值--堆排序
堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]<=key[2i+1]&&Key[i]<=key[2i+2]或者Key[i]>=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆: ...转载 2018-03-11 21:46:49 · 153 阅读 · 0 评论 -
Java排序算法之--快速算法--快速上手
何为快速算法:它是冒泡排序的改进~基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。算法的整个处理过程如下:核心思想:基准数不断不断归位的过程(右边大于基准数,左边小于基准数):当基准数为左边第一个数时,(从右边向左开始扫描,当扫描到小于...转载 2018-03-10 21:02:16 · 171 阅读 · 0 评论 -
蓝桥杯之--神秘三位数
有这样一个3位数,组成它的3个数字阶乘之和正好等于它本身。 即:abc = a! + b! + c! 请找出所有满足要求的三位数.审好题很重要:三位数而非,三位数的个数先写出一个函数求出某个数的阶乘,在跟别求出一个三位数的个十百位,然后直接判断即可下面附上程序:public class SwingDesign { public static void main(String args[]) { ...原创 2018-03-09 21:26:17 · 873 阅读 · 0 评论 -
蓝桥杯大赛基础之--数列排序
题目:数列排序问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200输入格式 第一行为一个整数n。 第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。输出格式 输出一行,按从小到大的顺序输出排序后的数列。样例输入58 3 6 4 9样例输出3 4 6 8 9这道题主要是考输入格式,对控制台数据的读取,记得import java.ut...原创 2018-03-15 15:55:30 · 333 阅读 · 0 评论 -
第三届蓝桥杯决赛真题---数量周期
【结果填空】(满分9分) 复杂现象背后的推动力,可能是极其简单的原理。科学的目标之一就是发现纷繁复杂的自然现象背后的简单法则。爱因斯坦的相对论是这方面的典范例证。 很早的时候,生物学家观察某区域某种昆虫的数量(称为虫口数)之逐年变化规律,就十分迷惑:有的时候是逐渐增多达到一个平衡值。有的时候在两个数字间周期跳动。有的时候则进入一片混乱,类似随机数字一样变化(称为混沌现象)。...原创 2018-03-08 21:30:32 · 215 阅读 · 0 评论 -
插入排序--~
插入排序,顾名思义,就是先把前面的数排好,后面的数来一个就插入一个,来一双就插入两个~(按顺序拍~)public class daJiMu { public void maoPao(int []arr) { for(int i = 1;i < arr.length;i++) { for(int j = i;j > 0;j--) { //int j = i;第一次比较一次,第二...原创 2018-03-14 22:09:05 · 150 阅读 · 0 评论 -
排序之--选择排序
所谓选择排序,就是将数组中的最大值,或者最小值选出来。public class xuanze{ public void maoPao(int []arr) { for(int i = 0; i < arr.length-1;i++) { int min = i; //容易出错 for(int j = i+1;j < arr.length;j+...原创 2018-03-14 21:49:46 · 98 阅读 · 0 评论 -
两个单链表相交的一系列问题----0_0
这道题emmm,难度相对来说很大额。主要是要分成三种情况来考虑:1. 两个链表都无环;2. 两个链表都有环;3. 一个有环一个无环,这种情况是不用 考虑的,一定没有交点(姥姥记住:单链表仅有一个指针,你脑补的情况都会破坏这个 要求。)其中2又可以分为三种情况:如下:而在判断它是否有交点的时候,前提是要先判断其是有环还是无环(其中这里有两种方法进行判断,第一种方法用哈希表,相对 来说比较容易,第二种...原创 2018-04-13 15:52:29 · 167 阅读 · 0 评论