2015-03-29 Mithrilwoodrat
为了找工作重新拾起 C++.才发现,被 Python 宠坏后,再回头使用 c++,一下子无法适应如此复杂的情况. 回到正题,C++ 中如何排序一个 map. 我们都知道无法使用 std::sort 来排序 map,只有通过间接的方法.参考 stackoverflow 上的几个答案. 继续阅读 »
2016-09-16 craneyuan
题目描述 给定一个已排序的数组,去除数组中的重复元素,只保留一个重复的元素,并且返回新的数组长度。 要求: 不要给数组分配额外的空间,你必须使用常量的内存大小进行原地操作。 例如: 给出数组A=[1,1,2],你的函数调用之后必须返回长度length=2,并且A现在变成[1,2]。 输入 一个已排序的数组,例如[1,1,2]。 输出 返回数组新的长度,例如length=2。 快慢指针法 设置fast指针遍历数组,slow指针指向不重复元素的下一位。 more java public static int removeDuplicates(int[] nums) { if (nums.length < 1) 继续阅读 »
2016-09-17 craneyuan
题目描述 给定一个已排序的单链表,去除单链表中的重复元素,只保留一个重复的元素,并且返回新的单链表。 例如: 给出1->1->2,你的函数调用之后必须返回1->2。 输入 一个已排序的单链表,例如1->1->2。 输出 返回1->2。 代码示例 ``` java /** 单链表定义 * * @author: crane-yuan * @date: 2016-9-17 下午12:11:13 */ public class ListNode { public int val; public ListNode next; public ListNode(int x) { val = x; 继续阅读 »
2013-11-14 veryyoung
昨天去某土豪公司笔试,最后一题竟然是红果果的写快排,偶竟然写不出来,长期没写算法了....... 网上关于快速排序的算法原理和算法实现都比较多,不过Java是实现并不多,而且部分实现很难理解,和思路有点不搭调。所以整理了这篇文章。如果有不妥之处还请建议。首先先复习一些基础。 1、算法概念。 快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。 2、算法思想。 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 3、实现思路。 继续阅读 »
2014-09-22 Lingxian Kong
本文转载自:http://blogread.cn/it/article/6367?f=wb 我常常在想,当初我若不离开完美,现在肯定也是总监级的title了,收入比现在高一倍不止。但是另一方面,在编码能力上我甚至不如某些刚毕业的本科生。比如,快速排序的算法我很熟悉,就一句话:“随机选一个元素,用它把输入集分成两半,对这两半继续递归,然后将递归得到(已排好序)的结果合并”。但几个月前看算法书的时候自己尝试写了一下快速排序,发现远远是另外一回事。虽然我对这个算法很清楚,但是用C++实现的时候充满了疑惑,写出来的代码BUG很多,调了很久才调对。相反,如果拿这个做面试题去面应届生,我相信对北大清华的学生通过率应该很高,至少过半。那么我比他 继续阅读 »
2016-07-31 jude
原理 堆排序中的“堆”,它是: 一棵完全二叉树 树的每个节点都不比它的两个子节点小(有序) 由此得到最有用的信息:根节点是二叉树里面最大的元素 堆排序的过程是: 构造有序的堆 输出并删除最大的元素 重复前面两个步骤 继续阅读 »
2014-10-08 Xie Jingyi
从今天起至10月11日,持续连载。 关于计算机 ENIAC 出现于1946年。 是最早的计算机。 是电子管计算机。 其他 阶码,即浮点数的指数部分。 IPv6是128位的。 求补码:二进制下:各位取反再加1 或 把原码减1再取反。 关于算法 各种排序的时间复杂度 快速排序:$O(nlogn)$,最坏为$O(n^2)$。 冒泡排序:$O(n^2)$。 归并排序:$O(nlogn)$。 计数排序:$O(n)$。 插入排序:$O(n^2)$。 关于树 完全二叉树 vs 满二叉树:完全二叉树最后一层不一定满。 前序遍历:中左右;中序遍历:左中右;后序遍历:左右中。 节点数 继续阅读 »
2016-07-07 jude
希尔排序不应该放在这个系列的,因为并不十分清楚它的原理,想要完整了解的朋友请看维基百科 下面是原理的简单解释: 继续阅读 »
2016-09-16 徐哲
冒泡排序 原理主要是倒序比较 代码如下: java class Untitled { public static void sortMaxMin(int array[]){ int i,j; int len = array.length; int temp; //Boolean flag = true; for (i = 0;ii;j--) { if (array[j-1]>array[j]) { temp = array[j]; 继续阅读 »
2019-05-08 Lanffy
前言 说明:本文章使用的ES版本是:6.2.4 在上一篇文章Elasticsearch搜索过程详解中,介绍了ES的搜索过程。 继续阅读 »