码迷,mamicode.com
首页 >  
搜索关键字:算法导论    ( 1209个结果
【算法导论】堆排序
(二叉)堆是一个数组,它可以被看成一个近似的完全二叉树。二叉堆可以分为两种形式:最大堆和最小堆。若将记录按从大到小排列,建“小”顶堆。若将记录按从小到大排,建“大”顶堆。说明:在堆排序算法中,我们使用的是最大堆,最小堆通常用于构造优先队列。算法分析:时间复杂度是O(nlogn)。堆排序属于原址排序:...
分类:编程语言   时间:2015-01-05 23:09:50    阅读次数:390
算法导论之十(十一章散列表11.1-4大数组实现直接寻址方式的字典操作)
算法导论第三版,第十一章散列表 习题11.1-4 大数组实现直接寻址方式的字典操作。...
分类:编程语言   时间:2015-01-05 16:36:47    阅读次数:95
【算法导论】最大子数组问题
寻找数组A的和最大的非空连续子数组。例如:int A[] = {1, -2, 3, 10, -4, 7, 2, -5}的最大子数组为3, 10, -4, 7, 2,其最大和为18。方法1:枚举所有子数组并求出他们的和。长度为n的数组有O(n2)个子数组(即:n + n-1 + ... + 1=n(n...
分类:编程语言   时间:2015-01-05 10:59:23    阅读次数:184
算法导论学习-heapsort
heap的定义:如果数组a[1,....n]满足:a[i]>a[2*i]&&a[i]>a[2*i+1],1<=i<=n/2,那么就是一个heap,而且是max-heapheap有两种,max-heap 和 min-heap,其中min-heap的性质与上面所述相反,即a[i]<a[2*i]&&a[i...
分类:编程语言   时间:2015-01-04 21:05:02    阅读次数:279
算法导论之九(10.2不带哨兵节点和带哨兵节点的双向链表)
带哨兵和不带哨兵的双向链表,欢迎拍砖!...
分类:编程语言   时间:2015-01-04 12:10:52    阅读次数:371
数据结构基础(4) --快速排序
快速排序是最流行的,也是速度最快的排序算法(C++ STL 的sort函数就是实现的快速排序); 快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数...
分类:编程语言   时间:2015-01-03 14:41:57    阅读次数:180
算法导论之八(10.1-5单数组实现双端队列)
算法导论习题,单数组实现双端队列,欢迎拍砖!...
分类:编程语言   时间:2015-01-02 23:45:19    阅读次数:366
堆排序算法的实现!!
上机代码: #include #include #include using namespace std; #define parent(i) (i)/2 #define left(i) 2*(i) #define right(i) 2*(i)+1 int size; void heapify(int a[], int i) { int l = left(i), r = right...
分类:编程语言   时间:2015-01-01 01:33:37    阅读次数:174
算法导论之七(中位数和顺序统计量之选择算法)
本文阐述了如何使用期望和线性时间的选择算法求得第i顺序统计量,欢迎拍砖!...
分类:编程语言   时间:2014-12-30 17:13:00    阅读次数:205
快速排序(Java实现)
在《算法导论》的第7章快速排序(QuiclSort)采用分治思想(Divide and Conquer)。对一个典型的子数组A[p..r]进行快速排序的三步分治过程:分解(divide):数组A[p..r]被划分为两个(可能为空)子数组A[p..q-1]和A[q+1..r],使得A[p..q-1]中...
分类:编程语言   时间:2014-12-30 16:51:34    阅读次数:198
1209条   上一页 1 ... 88 89 90 91 92 ... 121 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!