自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梵高先生的专栏

学海无涯乐作舟!

  • 博客(7)
  • 资源 (1)
  • 收藏
  • 关注

原创 5 计数排序

计数排序Profile计数排序,顾名思义通过计数的方式来排序。计数排序不同于快速排序、归并排序,并不进行元素间的比较,因此可以突破时间复杂度O(nlgn)的下限,其时间复杂度为O(n)。基本思想是:确定小于等于元素的其他元素的个数,就确定了此元素的次序。前提要求元素属于[0, k]之间的数字。当然计数排序还有最最重要的一个性质:她是一个稳定的排序算法,即具有相同值得元素在输出数组中的相...

2018-02-25 11:48:23 237

原创 4 快速排序

快速排序Profile和归并排序一样,快速排序也使用分治思想。 -分解:将序列分成左右两部分; -解决:分别对左右部分进行排序; -合并:和归并排序不一样,子数组就在原地,所以不用合并,原数组就已经有序了。 快速排序的应用可就广泛了,C++STL中的sort()方法主体就是采用的三数取中快速排序,并搭配插入排序和堆排序以解决递归深度问题,和提升整体排序效率。快速排序的期望时间复杂度...

2018-02-25 10:01:14 300

原创 3 堆排序

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

2018-02-24 18:10:10 229

原创 2 归并排序

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

2018-02-24 11:50:50 179

原创 1 插入排序

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

2018-02-24 10:35:14 169

原创 C++中的函数默认参数

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

2018-02-14 16:00:22 517

原创 C++中的有趣的数组名

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

2018-02-13 16:36:17 421

C++中const的用法

C++const用法详解。这里可以学到C++const的一些用法。

2013-12-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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