上一页 1 ··· 55 56 57 58 59 60 61 62 63 ··· 98 下一页
摘要: 摘要: 本章所讨论的问题是在一个由n个不同数值构成的集合中选择第i个顺序统计量问题。主要讲的内容是如何在线性时间内O(n)时间内在集合S中选择第i小的元素,最基本的是选择集合的最大值和最小值。一般情况下选择的元素是随机的,最大值和最小值是特殊情况,书中重点介绍了如何采用分治算法来实现选择第i小的元... 阅读全文
posted @ 2014-11-03 16:26 Jessica程序猿 阅读(614) 评论(0) 推荐(0) 编辑
摘要: 摘要: 本章先回顾了前面介绍的合并排序、堆排序和快速排序的特点及运行运行时间。合并排序和堆排序在最坏情况下达到O(nlgn),而快速排序最坏情况下达到O(n^2),平均情况下达到O(nlgn),因此合并排序和堆排序是渐进最优的。这些排序在执行过程中各元素的次序基于输入元素间的比较,称这种算法为比较... 阅读全文
posted @ 2014-11-03 13:27 Jessica程序猿 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 快速排序对于n个数的输入数组来说,快速排序是一种最坏情况时间复杂度为O(n2)的排序算法,虽然最坏情况时间复杂度很差,但是快速排序通常是实际排序中最好的选择,因为它的平均性能非常好:它的期望时间复杂度是O(nlgn),而且O(nlgn)中隐含的常数因子非常小。1、快速排序的描述 快速排序算法采用的... 阅读全文
posted @ 2014-11-03 11:05 Jessica程序猿 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 1、概述 队列是一种满足先进先出(FIFO)的数据结构,数据从队列头部取出,新的数据从队列尾部插入,数据之间是平等的,不存在优先级的。这个就类似于普通老百姓到火车站排队买票,先来的先买票,每个人之间是平等的,不存在优先的权利,整个过程是固定不变的。而优先级队列可以理解为在队列的基础上给每个数据赋一... 阅读全文
posted @ 2014-11-02 20:59 Jessica程序猿 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 一 堆 堆给人的感觉是一个二叉树,但是其本质是一种数组对象,因为对堆进行操作的时候将堆视为一颗完全二叉树,树种每个节点与数组中的存放该节点值的那个元素对应。所以堆又称为二叉堆,堆与完全二叉树的对应关系如下图所示:二叉堆可以分为两种形式:最大堆和最小堆。在这两种堆中,结点的值都要满足堆的性质。在最大堆... 阅读全文
posted @ 2014-11-02 20:40 Jessica程序猿 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 刚看到堆排序,顺便记录一下关于树的一些基本概念:前言前面介绍的栈、队列都是线性结构(linear structure)。而树是非线性结构(non-linear structure)。因此,树中的元素之间一般不存在类似于线性结构的一对一的关系,更多地表现为多对多的关系。直观地看,它是数据元素(在树中称... 阅读全文
posted @ 2014-11-01 23:23 Jessica程序猿 阅读(1894) 评论(0) 推荐(0) 编辑
摘要: 最大子数组问题方法一:暴力求解方法我们可以很容易地设计出一个暴力方法来求解本问题:简单地尝试没对可能的子数组,共有O(n2)种#includeusing namespace std;#define INT_MIN 0x80000000int main(){ int arr[10]={9,8,-... 阅读全文
posted @ 2014-11-01 21:14 Jessica程序猿 阅读(510) 评论(0) 推荐(0) 编辑
摘要: 递归的总结:http://www.cnblogs.com/Bob-FD/archive/2013/04/10/3012568.html(其中包含一些递归的资料,有时间看看,递归实在是不好理解)C通过运行时堆栈支持递归函数的实现。递归函数就是直接或间接调用自身的函数。 许多教科书都把计算机阶乘和菲波那... 阅读全文
posted @ 2014-11-01 19:41 Jessica程序猿 阅读(851) 评论(0) 推荐(0) 编辑
摘要: 2.1 插入排序C++实现:#includeusing namespace std;void InsertSort(int arr[],int n){ int i,j,key; for(i=1;i=0&&keyusing namespace std;void Merge(int arr[... 阅读全文
posted @ 2014-11-01 11:25 Jessica程序猿 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 调试工具:GDBUNIX程序员最常用的调试工具是GDB,大多数Linux系统应该预先安装了GDB。如果没有预先安装该工具,则必须下载GCC编译器程序包。DDD随着GUI(图形用户界面)越来越流行,大量的UNIX环境下运行的基于GUI的调试器被开发出来。其中的大多数工具都是GDB的GUI前端:用户通过... 阅读全文
posted @ 2014-10-31 21:05 Jessica程序猿 阅读(754) 评论(0) 推荐(0) 编辑
上一页 1 ··· 55 56 57 58 59 60 61 62 63 ··· 98 下一页