梦想破碎是没有声音的,它只是缓慢又沉默地离开了。 by 苏更生

 分类:数据结构-算法

8大排序算法图文讲解

8大排序算法图文讲解
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。 本文将依次介绍上述...

Jay13 3年前 (2014-10-29) 59198℃ 3评论 194喜欢

工程实践中最常用的10大数据结构与算法讲解(0)

工程实践中最常用的10大数据结构与算法讲解(0)
在Quora上看到一个问题:工程实践当中,最常用的算法和数据结构有哪些? 以下是Google工程师Arjun Nayini给出的答案,得到了绝大多数人的赞同。 最常用的算法 1.图搜索算法(BFS,DFS)。 2.排序算法 3.通用的动态规划算法 4.匹配算法和网络流算法 5....

Jay13 3年前 (2014-08-23) 12101℃ 0评论 43喜欢

工程实践中最常用的数据结构与算法

工程实践中最常用的数据结构与算法
本文介绍工程实践中最常用的一些数据结构与算法。(文章中介绍的数据结构与算法由谷歌工程师Arjun Nayini给出) 最常用的算法 1.图搜索算法(BFS,DFS),深度优先搜索尤其重要,因为它能给出很多图的结构信息。 2.排序算法(比较排序和桶排序思想) 3.通用的动态规划算法...

Jay13 3年前 (2014-08-13) 4516℃ 0评论 15喜欢

Nginx高效数据结构(5)——内存池(ngx_pool_t)

Nginx高效数据结构(5)——内存池(ngx_pool_t)
Nginx是我们学习编程的一个非常有参考价值的开源项目。良好的编码风格,高效的数据结构、架构设计。 快课网在此搜罗了一些优质资源。从本文开始讲述Nginx中常用的数据结构,主要包括Nginx的数组结构、链表结构、队列、hash结构、内存池等。 0. 序 nginx对内存的管理由其...

Jay13 3年前 (2014-07-12) 4791℃ 0评论 9喜欢

Nginx高效数据结构(4)——Hash表(ngx_hash_t)

Nginx是我们学习编程的一个非常有参考价值的开源项目。良好的编码风格,高效的数据结构、架构设计。 快课网在此搜罗了一些优质资源。从本文开始讲述Nginx中常用的数据结构,主要包括Nginx的数组结构、链表结构、队列、hash结构、内存池等。 在阅读本文之前,建议先阅读文章:哈希...

Jay13 3年前 (2014-07-12) 5722℃ 0评论 12喜欢

Nginx高效数据结构(3)——队列(ngx_queue_t)

Nginx是我们学习编程的一个非常有参考价值的开源项目。良好的编码风格,高效的数据结构、架构设计。 通常学习Nginx主要有以下两种情形: 1) 需求驱动型。在实际应用中,需要在Nginx的基础上,开发一些特定需求的模块,为此,我们需要去了解Nginx的工作原理、架构设计,并完成...

Jay13 3年前 (2014-07-12) 3248℃ 0评论 8喜欢

Nginx高效数据结构(2)——链表(ngx_list_t)

Nginx是我们学习编程的一个非常有参考价值的开源项目。良好的编码风格,高效的数据结构、架构设计。 通常学习Nginx主要有以下两种情形: 1)需求驱动型。在实际应用中,需要在Nginx的基础上,开发一些特定需求的模块,为此,我们需要去了解Nginx的工作原理、架构设计,并完成相...

Jay13 3年前 (2014-07-12) 3604℃ 0评论 15喜欢

Nginx高效数据结构(1)——数组(ngx_array_t)

Nginx是我们学习编程的一个非常有参考价值的开源项目。良好的编码风格,高效的数据结构、架构设计。 通常学习Nginx主要有以下两种情形: 1)需求驱动型。在实际应用中,需要在Nginx的基础上,开发一些特定需求的模块,为此,我们需要去了解Nginx的工作原理、架构设计,并完成相...

Jay13 3年前 (2014-07-12) 5690℃ 2评论 9喜欢

哈希表

基本概念   哈希表(Hash Table)是一种根据关键字直接访问内存存储位置的数据结构。通过哈希表,数据元素的存放位置和数据元素的关键字之间建立起某种对应关系,建立这种对应关系的函数称为哈希函数(如图)。 哈希函数构造方法   哈希表的构造方法是:假设要存储的数据元素个数为...

Jay13 3年前 (2014-07-04) 7299℃ 0评论 7喜欢

数据结构与算法大全 目录索引

【本文来自博客园网友:如果天空不死】将目录收录于此,方便自己和他人随时学习参考。程序员面试必杀技啊,有没有? 最近抽空整理了”数据结构和算法”的相关文章。在整理过程中,对于每种数据结构和算法分别给出”C”、”C++...

熊 大 3年前 (2014-05-13) 11602℃ 0评论 28喜欢

有队列的地方,就有栈。上一篇讲了队列及其实现。本篇讲述如何实现一个栈。给出了栈实现的伪代码和一个具体的实现,并给出了一个简单测试程序。 本文的栈用数组实现。在给出伪代码和具体实现之前,我们需要确定好栈的接口,即我们的栈具体提供什么操作。 我们的栈提供的操作如下,其中STACK_E...

熊 大 3年前 (2014-05-12) 2706℃ 0评论 8喜欢

堆排序

1.堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]<=key[2i+1]&&Key[i]<=key[2i+2]或者Key[i]>=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的...

熊 大 3年前 (2014-05-08) 15684℃ 7评论 19喜欢

快速排序

首先简单描述下快速排序的基本思路 快速排序是基于分治模式处理的,对一个典型子数组A[p...r]排序的分治过程为三个步骤: 1.分解: A[p..r]被划分为俩个(可能空)的子数组A[p ..q-1]和A[q+1 ..r],使得 A[p ..q-1] <= A[q] <...

熊 大 3年前 (2014-05-08) 21023℃ 11评论 38喜欢

寻找最小(最大)的k个数

题目描述:输入n个整数,输出其中最小的k个元素。 例如:输入1,2,3,4,5,6,7,8这8个数字,则最小的4个数字为1,2,3,4。 思路1:最容易想到的方法:先对这个序列从小到大排序,然后输出前面的最小的k个数即可。如果选择快速排序法来进行排序,则时间复杂度:O(n*log...

熊 大 3年前 (2014-05-08) 8954℃ 3评论 7喜欢

编写递归程序的四条法则

1.基本情形:必须总有某些基准情况,它无需递归即能解出。 2.不断推进:对于需要递归的情形,每一次递归调用都必须要使得求解状况朝向接近基本情形的方向推进。 3.设计法则:假设所有的递归调用都能运行。 4.合成效益法则:在求解一个问题的同一实例时,切勿在不同递归调用中做重复性的工作...

熊 大 3年前 (2014-05-06) 2301℃ 0评论 3喜欢

求N个数中第K大的数

设有一组N个数的数组,要确定其中第K个最大者,我们称之为选择问题。来看看解决此问题的思路。 思路1:最直白的思路便是将数组排序,然后获取第K个数。排序算法则有很多选择。如果选择快速排序,则该”选择问题“的时间复杂度即为快排的时间复杂度:O(nlogn) 思...

熊 大 3年前 (2014-05-06) 4715℃ 1评论 6喜欢