自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 快速排序

快速排序是使用最多的排序方式,其复杂度为1.39NlogN,略高于归并排序,但是由于其移动次数少且不需要,所以一般情况下快速排序会更快。        快速排序原理是将数组第一个元素作为切分元素,比其小的元素排在其左侧,比其大的元素排在其右侧,然后再分别对其两侧的子数组进行切分,最终得到排好序的数组。        三项切分的快速排序则是在快速排序的基础上将与切分元素相等的所有元素找到并与

2016-11-02 19:11:04 297

原创 归并排序

归并排序的思想是将大数组细分成一个个小数组(甚至可以使小数组只包含一个元素),然后对小数组不断进行归并,从而得到排好序的大数组。         归并排序是基于比较的排序方式中的最优解,主要分为两种:自上而下和自底向上。两种排序方式的复杂度均为N*logN,较之初级排序方法的N^2大大提速,可以处理上百万个元素的数组,但是在解决小数组(元素数小于15)排序时,插入排序方法更快。     

2016-11-01 00:46:27 232

原创 初级排序方法——选择、插入、希尔排序

初级排序方法是最基本的排序方法,主要包括选择排序、插入排序以及希尔排序。        选择排序的原理是通过比较整个数组,找到最小值,然后将最小值与数组中第一个位置的数字进行交换,依靠循环来完成对整个数组的排序。对于一个由N个元素组成的数组,这种方法进行(N^2)/2次比较和N次交换,并且无论输入是什么情况,其比较和交换次数不变。        插入排序的原理则是比较该元素与其之前元素的大

2016-10-31 22:02:12 238

原创 算法合集——并查集union-find

并查集算法主要分为quic-find, quick-union以及union-find方法。但出于效率考虑,一般使用union-find算法进行实际操作。        union-find算法的思想就是利用一个数组id[]记录每个节点的父节点,例如现要将节点1(id[1] = 1)连接到节点2(id[2] = 2),则令id[1] = 2即可;同时,若节点为根节点,则令其id值等于其自身。通

2016-10-30 22:06:19 315

原创 C++实现的链表队列

//头文件如下#ifndef QUEUE_H#define QUEUE_H#includetemplateclass Queue{private: struct Node { T item; Node *next; }; Node *head = NULL; Node *tail = NULL; int

2016-10-28 21:52:39 311

原创 c++字符串输入总结

c++中 以char数组或指针形式表达字符串时,初学者在尝试输入字符串时常常会出现错误。以下是我对这部分内容的一点总结:        由于在使用std::cin >> char[](or char *)时,输入流在遇到空格、制表、回车键时会统一停止输入,所以当要输入的字符串中有空格时,我们可以采取以下两种方式:        1、利用cin.getline(char *, int

2016-10-20 00:30:44 508

空空如也

空空如也

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

TA关注的人

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