下载地址:网盘下载 内容简介 · · · · · · 本书是国外数据结构与算法分析方面的经典教材,使用卓越的Java编程语言作为实现工具讨论了数据结构(组织大量数据的方法)和算法分析(对算法运行时间的估计)。 随着计算机速度的不断增加和功能的日益强大,人们对有效编程和算法分析的要求也不断增长。本书把 ...
分类:
编程语言 时间:
2018-02-24 15:07:12
阅读次数:
367
归并排序 归并排序算法实现: #include<stdio.h> #include<stdlib.h> #define FatalError( Str ) fprintf( stderr, "%s\n", Str ), exit( 1 ) typedef int ElementType; void ...
分类:
编程语言 时间:
2018-02-24 10:45:31
阅读次数:
196
摘要: 本章先回顾了前面介绍的合并排序、堆排序和快速排序的特点及运行运行时间。合并排序和堆排序在最坏情况下达到O(nlgn),而快速排序最坏情况下达到O(n^2),平均情况下达到O(nlgn),因此合并排序和堆排序是渐进最优的。这些排序在执行过程中各元素的次序基于输入元素间的比较,称这种算法为比较排 ...
分类:
编程语言 时间:
2018-02-23 16:00:03
阅读次数:
187
前言:动态规划的概念 动态规划(dynamic programming)是通过组合子问题的解而解决整个问题的。分治算法是指将问题划分为一些独立的子问题,递归的求解各个问题,然后合并子问题的解而得到原问题的解。例如归并排序,快速排序都是采用分治算法思想。本书在第二章介绍归并排序时,详细介绍了分治算法的 ...
分类:
其他好文 时间:
2018-02-23 15:53:49
阅读次数:
211
为什么要清除浮动 浮动 Floats 是 CSS 中的一种布局方式,它的渲染位置在行框与包含块之间,这样就可以是行框内文字与浮动元素不重叠并且环绕它显示,在布局过程中也经常会使用它来达到左右并排布局的效果,但是,由于浮动特性,容器如果没有明确设定高度,会依照普通流内元素高度设置,这样会导致脱离普通流 ...
分类:
Web程序 时间:
2018-02-21 17:44:25
阅读次数:
188
正文之前 归并排序(Merge sort),是建立在归并操作上的一种有效的排序算法,效率为O(n log n ),1945年由约翰 冯 诺依曼首次提出,该算法是采用分治法的一个非常典型的应用,且各层分治递归可以同时进行。 &em ...
分类:
编程语言 时间:
2018-02-21 17:41:56
阅读次数:
166
上次给大家说了说简单的冒泡排序,这次我们来说一说插入排序 插入排序的做法就像是我们日常生活中玩扑克牌一样,每次抽一张牌,将扑克牌按一定顺序插入手牌中,一步步完成排序 本文将介绍以下内容 排序思想 算法实现(JAVA) 测试阶段 排序过程讲解 算法分析 排序思想 插入排序同样有内循环和外循环,外循环执 ...
分类:
编程语言 时间:
2018-02-21 11:38:23
阅读次数:
192
归并排序:将数组每次分成两部分分别排序,然后逐一合并 快速排序:将数组分成两部分,使得组边部分小于标准,右边部分大于标准,这样就将标准元素放到了排序数组正确的位置 三路快排 ...
分类:
编程语言 时间:
2018-02-18 21:04:53
阅读次数:
194
本文描述了LeetCode 148题 "sort list" 的解法。 题目描述如下: Sort a linked list in O(n log n) time using constant space complexity. 题目要求我们在O(n log n)时间复杂度下完成对单链表的排序,我们 ...
分类:
编程语言 时间:
2018-02-18 17:03:33
阅读次数:
201
基本思想 分析归并排序之前。我们先来了解一下分治算法。 分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题。这些子问题相互独立且与原问题性质相同。求出子问题的解。就可得到原问题的解。 分治算法的一般步骤: (1)分解,将要解决的问题划分成若干规模较小的同类问题; (2)求解,当子问题 ...
分类:
编程语言 时间:
2018-02-17 19:56:26
阅读次数:
197