
算法
文章平均质量分 60
Like-BC
coding my dream
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
排序二之冒泡排序
冒泡排序通过多次比较和交换来实现排序:1:对数组的各数据,依次比较相邻的两个元素的大小;2:如果前面的数据大于后面的数据,就交换这两个数据经过第一轮多次比较排序后,便可把最小的数据排好。3:然后再用同样的方法把剩下的数据组个进行比较,最后便可按照从小到大的顺序排好数组中各数据的顺序。#include#include#include#define SIZE 10int i,j;原创 2016-02-03 11:07:43 · 374 阅读 · 0 评论 -
最大子序列和
问题描述给定一个序列(整数或浮点数),求出其中连续的子序列和最大的那一个。例:序列{-10 1 2 3 4 -5 -23 3 7 -21},其最大的连续子序列为{1 2 3 4}或{3 7},最大和为10.算法1:穷举法最直观的算法,穷举式地尝试所有可能。下标变量i表示子序列的开始位置,j表示结束位置,每次选定一个子序列Ai--Aj,再使用k遍历该子序列求子序列的和。代码如下:...转载 2019-01-31 19:52:18 · 289 阅读 · 0 评论 -
一篇文章搞懂bitmap算法(待更新)
BitMap算法热点什么是BitMap算法问题解法BitMap算法BitMap算法举例简单的排序问题海量数据的查找问题针对第二个问题热点BitMap算法,一直是面试的热点问题,当然它也是在海量数据进行快速查找,判重,删除的基本方法。什么是BitMap算法问题在介绍bitmap算法之前,先来看下面几个与bitmap有关的问题1. 给40亿个不重复的int的整数,没排过序的,然后在给一个...原创 2019-01-31 12:49:11 · 916 阅读 · 0 评论 -
最大值与最小值比较问题新解
一般在比较一个数组中的最大值与最小值的时候,你是否想过最少需要经过最少需经过多少次比较呢? 反正在我学之前,我一直以为比较就是(以最小值为例): 1. Min=a[1]; 2. For i=2 to a.length 3. If min>a[i] 4. min=a[i]; 5. return min;实际上,这种方法是很l原创 2016-05-02 19:20:00 · 1576 阅读 · 0 评论 -
HDU 2149 Public Sale
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6383 Accepted Submission(s): 3756Problem Description虽然不想,但是现实总归是现实,Lele始终没有逃过退学的命运,原创 2016-03-06 18:43:31 · 514 阅读 · 0 评论 -
HDU 1847 Good Luck in CET-4 Everybody!
Description大学英语四级考试就要来临了,你是不是在紧张的复习?也许紧张得连短学期的ACM都没工夫练习了,反正我知道的Kiki和Cici都是如此。当然,作为在考场浸润了十几载的当代大学生,Kiki和Cici更懂得考前的放松,所谓“张弛有道”就是这个意思。这不,Kiki和Cici在每天晚上休息之前都要玩一会儿扑克牌以放松神经。“升级”?“双扣”?“红五”?还是“斗地主”?原创 2016-03-06 12:50:54 · 479 阅读 · 0 评论 -
HDU 1846 Brave Game
SubmitStatus Practice HDU 1846 Description十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫《勇敢者的游戏》(英文名称:Zathura),一直到现在,我依然对于电影中的部分电脑特技印象深刻。今天,大家选择上机考试,就是一种勇敢(brave)的选择;这个短学期,我们讲的是博弈(game)原创 2016-03-06 12:23:45 · 374 阅读 · 0 评论 -
查找算法之折半查找
Binary Search折半查找又称二分查找,要求数据序列呈线性结构,即先排序,在查找。可以明显的提高查找速度,其流程如下:默认数组为a[];需查找的值为x; 首先设置3个变量low、mid、high,分别保存数组元素开始、中间和末尾元素的序号。接着进行以下判断。1:如果数组中序号为mid的值与需查找的值相等,则表明已经找到了数据,返回该序列号mid;2:如果需查找的值x原创 2016-02-04 14:11:09 · 494 阅读 · 0 评论 -
排序八之合并排序
Merge Sort合并排序算法就是将多个有序数据表合并成一个有序数据表。如果参与合并的只有两个有序表,责成其为二路合并。对于一个原始的待排序序列,往往可以通过分割的方法来实现多路合并排序。合并排序的基本流程如下:1:首先将含有n个节点的待排序数据序列看作n个长度为一的有序子表组成,并将它们两两合并,得到长度为二的若干有序子表;2:然后,在对这些子表进行两两合并,得到长度为四的若干原创 2016-02-03 18:54:26 · 374 阅读 · 0 评论 -
排序七之堆排序
Heap Sort一种基于选择排序思想,利用堆结构和二叉树的一些性质来完成数据排序的排序算法。 堆排序的关键是构造堆结构,准确而言,堆结构即是一个完全二叉树,树中的每一个节点对应原始数据的一个记录。每个节点应满足以下条件:1)从小到大排序:要求非叶结点的数据要大于或等于其左、右子节点的数据。2)从大到小排序:要求非叶节点的数据要小于或等于其左、右子节点的数据。一个完整的堆排序需原创 2016-02-03 17:36:38 · 445 阅读 · 0 评论 -
排序六之快速排序
Quick Sort一种类似于冒泡排序的排序算法;并对冒泡排序进行了改进,基于交换排序思想。快速排序算法通过多次比较和交换来实现排序,其排序流程如下:1:首先设定一个分界值,通过该分界值将数组分成左右两个部分。2:将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数据的左边。此时,左边部分中各元素都小于等于分界值,而右边部分中各元素都大于等于分界值。3:然后,左边和原创 2016-02-03 16:08:30 · 432 阅读 · 0 评论 -
排序五之希尔排序(缩小增量排序)
Shell Sort冒泡排序算法,选择排序算法和插入排序算法的思路比较直观,但排序的效率都比较低。对于遇到大量的数据需要排序时,Shell排序便是其他更为高效的算法之一。Sell排序算法严格来说基于插入排序的思想,又称希尔排序或缩小增量排序。Shell排序的基本流程如下:1:将有n个元素的数组分成n/2个数字序列,第1个数据与第n/2-1个数据为一对,……以此类推;2:一次原创 2016-02-03 14:58:24 · 812 阅读 · 0 评论 -
排序四之插入排序
Isertion Sort插入排序算法通过比较和插入来实现排序,其排序流程如下:1:首先对数组的前两个数据进行从小到大排序。2:接着将第三个数据与排好序的两个数据进行比较,将第三个数据插入到合适的位置。3:然后,将第四个数据插入到已排好序的前三个数据中。4:不断重复上述过程。直到把最后一个数据插入到合适的位置。最后便完成了对数组从小到大排序。#include#includ原创 2016-02-03 11:50:05 · 343 阅读 · 0 评论 -
排序三之选择排序
Selection Sort选择排序通过选择和交换实现排序,其排序的基本流程如下:1:首先从原始数组中选择一个最小的数据,将其和位于第一个位置的数据交换;2:接着从剩下的n-1个数据中选择次小的一个元素,将其和位于第二个数据交换;3:然后,这样不断重复,直到最后两个数据完成交换。最后便完成了数组从小到大的排序;#include#include#include#define原创 2016-02-03 11:29:24 · 367 阅读 · 0 评论 -
LeetCode-LRU缓存机制
题目描述运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put (*注:这里的get和put都表示数据被使用)。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。 写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当...转载 2019-02-01 20:07:22 · 444 阅读 · 0 评论