算法知识
文章平均质量分 50
ka_ko
菜鸟小白。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法时间复杂度的表示法O(n²)、O(n)、O(1)、O(nlogn)
时间复杂度这个东西,其实更准确点说应该是描述一个算法在问题规模不断增大时对应的时间增长曲线。所以,这些增长数量级并不是一个准确的性能评价,可以理解为一个近似值,时间的增长近似于logN、NlogN的曲线。简单理解:就是变量为n的时候,算法需要对变量操作次数的量级。比如:要找到一个数组里面最大的一个数,你要把n个变量都扫描一遍,操作次数为n,那么算法复杂度是O(n).转载 2017-11-25 09:15:53 · 6641 阅读 · 0 评论 -
二叉树算法集锦
1.判断平衡二叉树public class Solution { public boolean IsBalanced_Solution(TreeNode root){ boolean[] res = new boolean[1]; res[0] = true; getHeight(root,1,res);//注意传数组,不能传res[0]...转载 2018-08-23 21:14:51 · 254 阅读 · 0 评论 -
关于递归思想
https://blog.youkuaiyun.com/wangxiaobupt/article/details/44198949概念递归就是某个函数直接或间接调用自身的问题求解过程。通过将自身问题划分成相同性质的子问题的求解过程,这些小问题的求解过程较容易,小问题的解就构成了原问题的解。 递归算法就是一个函数通过不断对自己的调用而求得最终结果的一种思维巧妙但是开销很大的算法。...转载 2018-08-23 11:30:05 · 681 阅读 · 0 评论 -
排序算法的稳定性分析(含java代码)
https://www.cnblogs.com/codingmylife/archive/2012/10/21/2732980.html首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj,Ai原来在位置前,排序后Ai还是要在Aj位置前。其次,说一下稳定性的好处。排序算法如果...转载 2018-08-22 21:29:43 · 3633 阅读 · 1 评论 -
二分查找法
https://blog.youkuaiyun.com/zhouyelihua/article/details/46665931 还要练下变形题啦! https://www.cnblogs.com/coser/archive/2011/04/11/2013013.html在百度百科里面是这样描述的:“二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除...转载 2018-08-13 00:09:46 · 1372 阅读 · 0 评论 -
哈希定义及应用(海量数据)
https://blog.youkuaiyun.com/duan19920101/article/details/51579136定义哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。记录的存储位置=f(关键字)这...转载 2018-04-26 16:58:22 · 603 阅读 · 0 评论 -
打印两个有序链表的公共部分
【题目】给定两个有序链表的头指针head1和head2,打印两个链表的公共部分。【代码】 //打印两个有序链表的公共部分 public void printCommonPart(Node head1,Node head2){ while(head1!=null && head2!=null){//两个链表有一个移动到null,比较结束 ...转载 2018-04-18 10:02:03 · 281 阅读 · 0 评论 -
排序算法 堆排序
转自:https://www.cnblogs.com/chengxiao/p/6129630.html1、预备知识堆排序:堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlog2n),它也是不稳定排序。首先简单了解下堆结构。堆:堆是具有以下性质的完全二叉树: 每个结点的值都大于或等于其左右孩子结点的值,称为大顶...转载 2018-03-15 10:09:26 · 278 阅读 · 0 评论 -
数据结构 数组(排序:冒泡选择插入)
1、基本操作public class array_1 { private long[] arr;//数组 private int elems;//数组中有效数据大小 //默认构造函数 public array_1(){ arr=new long[50]; } public array_1(int max){ ...原创 2018-03-09 21:52:01 · 231 阅读 · 0 评论 -
排序算法 快速排序
转载自:http://blog.youkuaiyun.com/lemon_tree12138/article/details/506227441.基本思想:分治思想,对冒泡排序改进。 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。2.步骤:...转载 2018-03-13 21:13:19 · 176 阅读 · 0 评论 -
排序算法 归并排序
转自:http://www.cnblogs.com/chengxiao/p/6194356.html1、基本思想归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案”修补”在一起,即分而治之)。a...转载 2018-03-15 15:37:39 · 204 阅读 · 0 评论 -
排序算法 基数排序
转自:http://blog.youkuaiyun.com/yabber0914/article/details/52279537(一)基数排序的思想:不直接比较数与数的大小。把待排序的整数按位分,分为个位,十位…..从小到大依次将位数进行排序。 实际上分为两个过程:分配和收集。分配就是:从个位开始,按位数从小到大把数据排好,分别放进0–9这10个桶中; 收集就是:依次将0-9桶中的数据放进数...转载 2018-03-15 17:12:19 · 289 阅读 · 0 评论 -
排序算法 排序算法总结
转自:http://www.cnblogs.com/end/archive/2011/10/22/2221034.html1.按平均时间将排序分为四类:(1)平方阶(O(n2))排序 一般称为简单排序,例如直接插入、直接选择和冒泡排序;(2)线性对数阶(O(nlgn))排序 如快速、堆和归并排序;(3)O(n1+£)阶排序 £是介于0和1之间...转载 2018-03-15 19:45:17 · 600 阅读 · 0 评论 -
排序算法 希尔排序
希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n^2)的第一批算法之一。本文会以图解的方式详细介绍希尔排序的基本思想及其代码实现。1、基本思想 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的...转载 2018-03-15 11:09:31 · 278 阅读 · 0 评论 -
空间复杂度
一个算法的空间复杂度(Space Complexity)S(n)定义为该算法所耗费的存储空间,它也是问题规模n的函数。渐近空间复杂度也常常简称为空间复杂度。空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度。一个算法在计算机存储器上所占用的存储空间,包括存储算法本身所占用的存储空间,算法的输入输出数据所占用的存储空间和算法在运行过程中临转载 2017-11-25 09:26:58 · 373 阅读 · 0 评论 -
从100万个数中找出最大的前100个数
https://blog.youkuaiyun.com/cslbupt/article/details/659355771.算法如下:根据快速排序划分的思想(1) 递归对所有数据分成[a,b)b(b,d]两个区间,(b,d]区间内的数都是大于[a,b)区间内的数(2) 对(b,d]重复(1)操作,直到最右边的区间个数小于100个。注意[a,b)区间不用划分(3) 返回上一个区间,并返回此区间的数字数目...转载 2018-09-18 15:38:24 · 10814 阅读 · 0 评论
分享