快速排序是使用的最广得排序算法.优点:简单,适用于不同的输入数据,在一般应用中比排序算法快. 是一种原地排序(只需要一个很小的辅助栈),排序时间与N 数组成NLgN成正比.而且内循环比大多数算法都要少. 快速排序是一种分…
分类:数据结构
BitMap原理
经常能够看到有些大厂的面试题里有一些这样的题目:一个10G的文件,里面全部是自然数,一行一个,乱序排列,对其排序。在32位机器上面完成,内存限制为 2G。 首先来分析一下题目,10G的文件,只有2G内存,显然,不可能一次…
数据结构之「霍夫曼树」
霍夫曼树 霍夫曼树 是由美国计算机科学家大卫·霍夫曼(David Albert Huffman)(又译为哈夫曼、赫夫曼)在1952年发明霍夫曼编码所用到的特殊二叉树。为了纪念他的成就,于是就叫 霍夫曼树,他的编码方法称为…
leecode刷题(14)-- 有效的字母异位词
leecode刷题(14)– 有效的字母异位词 有效的字母异位词 描述: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。 示例 1: 输入: s = "anagram",…
动态规划—01背包问题
01背包问题属于经典的动态规划问题,场景描述如下: 形象描述:贼,夜入豪宅,可偷之物甚多,而负重能力有限,偷哪些才更加不枉此行? 进一步抽象的话,就是: 给定个物品,每种物品都有自己的重量和价值,在限定的总重量/总容量内…
BZOJ-2152: 聪聪可可(点分治)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2152 树的点分治,搞个数组存mod 3=0,1,2的数的个数,然后直接搞就可以了。。 代码: #include &…
小朋友学数学(22):三角函数
一、定义 1.png 在上面这个直角三角形里,C为直角,A, B为非直角,角C对应的斜边为c,角B对应的直角边为b,角A对应的直角边为a。 定义: 正弦值为对边的值比斜边的值,记为sin 余弦值为邻边的值比斜边的值,记为…
数据结构之树的相关问题
实验要求 实现二叉树的抽象数据类型 实现二叉树的建立的运算 实现二叉树的遍历运算 实现创建哈夫曼树的算法 实验代码 实现二叉树的抽象数据类型 typedef struct BiTNode //define tree No…
BZOJ-2428: [HAOI2006]均分数据(模拟退火)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2428 WA了整整一版QAQ,模拟退火真真不应该用来写正解QAQ 代码: #include <cstdio&g…
leecode刷题(6)-- 两个数组的交集II
leecode刷题(6)– 两个数组的交集II 两个数组的交集II 描述: 给定两个数组,编写一个函数来计算它们的交集。 示例: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出…
数据结构| 线性表
线性表的类型定义 线性表是一种最常用且最简单的一种数据结构。概括地说,线性表是n个数据元素的有限序列。举例来说,26个英文字母表就是一个简单的线性表: (A,B,C……Z) 线性表中数据元素之间的…
每天学习一点儿算法--递归
递归是很多算法都使用的一种编程方法。听说递归是一种十分优雅的问题解决办法,可是对于初涉递归的我,还没有形成这种独特的体会。 学习使用递归的关键在于:如何将问题分为基线条件和递归条件。 基线条件和递归条件 由于递归函数调用…