梵高先生的专栏

学海无涯乐作舟!

5 计数排序

计数排序 Profile 计数排序,顾名思义通过计数的方式来排序。计数排序不同于快速排序、归并排序,并不进行元素间的比较,因此可以突破时间复杂度O(nlgn)的下限,其时间复杂度为O(n)。基本思想是:确定小于等于元素的其他元素的个数,就确定了此元素的次序。前提要求元素属于[0, k]之间...

2018-02-25 11:48:23

阅读数 70

评论数 0

4 快速排序

快速排序 Profile 和归并排序一样,快速排序也使用分治思想。 -分解:将序列分成左右两部分; -解决:分别对左右部分进行排序; -合并:和归并排序不一样,子数组就在原地,所以不用合并,原数组就已经有序了。 快速排序的应用可就广泛了,C++STL中的sort()方法主体就是采用的三...

2018-02-25 10:01:14

阅读数 86

评论数 0

3 堆排序

堆排序 Profile 堆排序结合了插入排序(原地排序)和归并排序(时间复杂度)的优点。堆排序基于一种数据结构——堆。这里说的堆不是指JAVA虚拟机中存储对象的内存空间。堆分为最大堆、最小堆,不仅可以用来实现堆排序,更常见的是实现优先级队列,比如JAVA JDK中的PriorityQueu...

2018-02-24 18:10:10

阅读数 47

评论数 0

2 归并排序

归并排序 Profile 说到归并排序,就不得不说道分治法。将原问题分解为几个规模较小但类似原问题的子问题,递归地求解这些子问题,然后再合并这些子问题的解来得到原问题的解。总结一下就是以下步骤:分解、解决、合并。对于归并排序来说(这个总结来自《算法导论》): - 分解:分解待排序的n个元...

2018-02-24 11:50:50

阅读数 55

评论数 0

1 插入排序

插入排序 说明 本来是想对插入排序做一个详细的说明——从算法原理、算法优劣、算法实现一一说起。但是要将算法原理说的通俗易懂,不是个简单的事情,常常需要很好的文笔和配上详细的图。但是最近需要复习准备面试,确实没什么时间去写一系列完整地说明算法的博客,所以这次就只是写下算法实现(C++代码)的...

2018-02-24 10:35:14

阅读数 50

评论数 0

C++中的函数默认参数

C++中的函数默认参数 C++提供的函数默认参数,不是什么很新的东西,只是很大程度上便利了函数的使用,减少程序员的负担。在申明函数原型的时候,可以给形参赋值,当调用函数时,不填写实参函数会自动选择默认值执行。但还是有一些值得注意的地方,让我们看代码举例说明: 代码块 #include &am...

2018-02-14 16:00:22

阅读数 208

评论数 0

C++中的有趣的数组名

C++中的有趣的数组名最近学习STL源代码,但是感觉有些C++的语法和细节忘却了,所以复习一下C++(毕竟一年未写过C++代码了,变节投入了JAVA的阵营>-<)。

2018-02-13 16:36:17

阅读数 201

评论数 0

JDK源码剖析之ArrayList浅析

ArrayList概述         下文用昵称“小A”表示ArrayList的一个实例:)         ArrayList是一个实现了List接口的大小可变的数组,可类比于Vector,但是ArrayList是unsynchronized(非同步的),而Vector类是synchron...

2017-12-26 22:10:03

阅读数 92

评论数 0

前言

知其然知其所以然,接触和使用JAVA也有8、9个月了,也算是对java、java的JDK有了一定了解,而我比较喜欢弄清楚一个东西的原理, 所以陆陆续续对工作中常用的JDK中提供类、方法等的源码进行了一番探究。 最后决定做个总结,做一个梳理,所以以JDK提供的源码为线索,对其做一番粗浅的剖析, ...

2017-12-26 22:05:35

阅读数 62

评论数 0

HDOJ 2734 Quicksum

根据字母代表的值和其输入的位置计算。细心一些,这是一道水题。 #include const int MAX_SIZE = 255 + 2; char array[MAX_SIZE]; //#define yangyuan int main() { #ifdef yangyuan fre...

2017-12-21 22:35:09

阅读数 68

评论数 0

HDOJ 2629 Identity Card

水题,细心一些。 #include #define yangyuan int main() { #ifdef yangyuan freopen("in", "r", stdin); #endif // yangyuan int n; ...

2017-12-21 22:33:29

阅读数 137

评论数 0

HDOJ 2023 求平均成绩

简单题目,不过要细心一点。 #include #include int score[50][5]; double courseAverage[5]; //#define YANGYUAN int main() { #ifdef YANGYUAN freopen("in.t...

2017-12-21 22:31:21

阅读数 114

评论数 0

HDOJ 2017 字符串统计

统计出现的数字字符,遍历统计就好。 #include const int MAX_SIZE = 10000; char words[MAX_SIZE]; //#define yangyuan int main() { #ifdef yangyuan freopen("i...

2017-12-21 22:26:05

阅读数 48

评论数 0

HDOJ 2016 数据的交换输出

题目要求找到输入数字中最小的那个,并和第一个元素交换然后输出所有数据。遍历找到最小的那个元素和第一个元素进行交换就好。

2017-12-21 22:23:58

阅读数 38

评论数 0

完全使用Linux学习和工作

大学时前看过王垠写的那篇《完全用Linux工作》,当时没什么感觉,只是觉得王垠太过偏激了。没想到在我完全删除Windows两个月之后,现在我却在Linux的发行版Ubuntu上用Vim写下了《完全使用Linux学习和工作》。

2017-12-21 22:19:40

阅读数 691

评论数 0

HDOJ 2015 偶数求和

有一个从2开始的偶数递增序列。求出从2开始每m个元素的平均数,不足m个的,按实际数量求平均数。 #include //#define yangyuan int main() { #ifdef yangyuan freopen("in", "r",...

2017-12-20 20:51:10

阅读数 57

评论数 0

HDOJ 2014 青年歌手大奖赛_评委会打分

根据题意求平均值,不过要去掉一个最高分和一个最低分。 #include //#define yangyuan int main() { #ifdef yangyuan freopen("in", "r", stdin); #endif // ya...

2017-12-20 20:48:52

阅读数 59

评论数 0

HDOJ 2013 蟠桃记

根据题意,递推求解就好。 #include //#define yangyuan int main() { #ifdef yangyuan freopen("in", "r", stdin); #endif // yangyuan int...

2017-12-20 20:47:25

阅读数 41

评论数 0

HDOJ 1197 Specialized Four-Digit Numbers 特别的四位数

根据题目描述,对输入的一个四位数,判断其十进制各位之和a、十六进制各位之和b、十二进制各位之和c是否满足a==b&&a==c。简单的通过求余的方式,求得对应进制各位上的和就好。 #include inline int sum(int x, int radix) { ...

2017-12-20 20:43:32

阅读数 72

评论数 0

HDOJ 1064 Financial Management 抢劫

很简单,求输入的浮点数的平均数,注意输出的精度。 #include //#define yangyuan int main() { #ifdef yangyuan freopen("in", "r", stdin); #endif double ...

2017-12-20 20:39:23

阅读数 51

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭