自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《算法导论》读书笔记--顺序量选择

在一个由n个元素组成的集合中,第i个顺序统计量是该集合中第i小的元素。 求数组A[p..r]的第i个顺序量: RADOMIZED_SELECT(A,p,r,i) 1 if p == r 2 return A[p] 3 q = RANDOMIZED_PARTITION(A,p,r)//随机化的快速插入排序,与插入排序不同的是,其“主元”的下标是调用random在

2016-01-14 15:02:49 340

原创 《算法导论》读书笔记--计数排序&基数排序

计数排序是用空间换取时间的算法,其假设n个输入元素中的每一个都在0到k区间内的一个整数,其中k为某个整数。当k=O(n)时,排序的运行时间为Theta(n)。 基本思想:对每一个输入元素x,确定小于x的元素个数。利用这一信息,就可以直接把x放到它在输出数组中的位置上了。 输入数组为A[1..n] 辅助数组:B[1..n]存放排序的输出,C[1..k]提供临时存储空间(存放A中数组元素值的出现

2016-01-11 19:59:29 446

原创 《算法导论》读书笔记--快速排序

快速排序是最坏情况时间复杂度为O(n²),最优时间复杂度为O(nlgn),平均时间复杂度为O(nlgn)。 最坏情况出现在每一层划分子问题时,分别包含了n-1个元素和0个元素,此时的时间复杂度为O(n²),与插入排序相同;在数组已经有序时其时间复杂度依旧为O(n²),此时插入排序的时间复杂度为O(n)。 快速排序使用了分治思想,将数组A[p..r]划分为两个子数组A[p..q-1]和A

2016-01-10 14:08:22 340

原创 《算法导论》读书笔记--堆排序

预备知识: 堆通常被看做一个近似完全的二叉树,使用数组A[1...N]表示堆,数组中一个元素代表堆上一个结点,堆存在以下性质: 根节点:A[1] 父结点:Parent[i] = i/2 左子节点:Left[i] = 2i 右子节点:Right[i] = 2i + 1 数组长度为:A.length 数组中有效数据长度为:A.heap-size 堆分为最大堆和最小堆,在最大堆中 Par

2016-01-08 16:35:10 918

原创 C++学习--顶层Const与底层Const

const关键字用来标明一个对象是不可更改的,由于其一旦创建后不可更改,所以需要在创建时对const对象进行初始化。 顶层const(指针常量)用来标明一个变量其本身是一个不可更改的常量。内置类型的const为顶层const。对于指针,被顶层const修改后,不可更改指针指向的对象。 const int i = 1;//顶层const int *const p = &i;//顶层const

2015-10-06 15:34:56 1451

原创 数据结构--链式栈(C语言)

栈是一种“先入后出”的重要数据结构,包含有栈顶和栈底,栈顶指向最后放入的元素,栈底指向最先放入的元素。不能随意访问,只能访问栈顶元素,其操作只能对栈顶元素使用。 重要的操作有入栈和出栈。入栈(push):将元素压入栈中,同时将栈顶指向此元素。出栈(pop):将栈顶元素弹出,同时将栈顶指向下一个元素。 (图片来自网络) 实现: //stack.h#ifndef STACK_H #def

2015-10-05 11:48:01 576

原创 数据结构--双链表(C语言)

双链表: 双链表与单链表不同的是,其结构体中存在两个指针,“Next”指向直接后继,“Prior”指向直接前驱,链表的访问不再是单链表的单向访问(只能访问后继结点),可以利用next和prior指针方便的进行双向访问(既可以访问后继结点也可以访问前驱结点)。 实现: //结构体 typedef struct node{ int data; struct node

2015-10-04 20:36:29 425

原创 数据结构--单链表(C语言)

单向链表:链表结点通常包含数据域与指针域,数据域用来存储相关的用户的数据,指针域用来指向下一个结点。访问单向链表,需要从头部(head)开始单向顺序访问,访问终结于指针域(next)为NULL的结点;其存储方式不同于以往的数组,按照非连续地址方式存储。 优点:链表长度可以实现动态增长,不必像数组一样在创建时确定大小。采取动态内存分配,不会造成内存浪费。链表内部结点的插入与删除方便,只需修改相应的ne

2015-10-02 17:20:36 604

空空如也

空空如也

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

TA关注的人

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