范文无忧网公文文书入党入团

外部排序算法基本思想是什么

02月10日 编辑 fanwen51.com

[图形学中的中点画线法与Bresenham算法画线的区别]个人认为最关键的区别就是那个决策参数的计算方式! 在Bresenham算法中,假设我们在(x0,y0)处画了一个点,那我们就要决定下一个点是在(x0+1,y0)还是在(x0+1,y0+1)处画,这两个点一般都不...+阅读

外部排序的基本思路

假设有一个72KB的文件,其中存储了18K个整数,磁盘中物理块的大小为4KB,将文件分成18组,每组刚好4KB。

首先通过18次内部排序,把18组数据排好序,得到初始的18个归并段R1~R18,每个归并段有1024个整数。

然后对这18个归并段使用4路平衡归并排序:

第1次归并:产生5个归并段

R11 R12 R13 R14 R15

其中

R11是由{R1,R2,R3,R4}中的数据合并而来

R12是由{R5,R6,R7,R8}中的数据合并而来

R13是由{R9,R10,R11,R12}中的数据合并而来

R14是由{R13,R14,R15,R16}中的数据合并而来

R15是由{R17,R18}中的数据合并而来

把这5个归并段的数据写入5个文件:

foo_1.dat foo_2.dat foo_3.dat foo_4.dat foo_5.dat

第2次归并:从第1次归并产生的5个文件中读取数据,合并,产生2个归并段

R21 R22

其中R21是由{R11,R12,R13,R14}中的数据合并而来

其中R22是由{R15}中的数据合并而来

把这2个归并段写入2个文件

bar_1.dat bar_2.dat

第3次归并:从第2次归并产生的2个文件中读取数据,合并,产生1个归并段

R31

R31是由{R21,R22}中的数据合并而来

把这个文件写入1个文件

foo_1.dat

此即为最终排序好的文件。

二 使用败者树加快合并排序

外部排序最耗时间的操作时磁盘读写,对于有m个初始归并段,k路平衡的归并排序,磁盘读写次数为

|logkm|,可见增大k的值可以减少磁盘读写的次数,但增大k的值也会带来负面效应,即进行k路合并

的时候会增加算法复杂度,来看一个例子。

把n个整数分成k组,每组整数都已排序好,现在要把k组数据合并成1组排好序的整数,求算法复杂度

延伸阅读:

编程实现中点画线法的直线的绘制和Bresenham算法的直线绘制中点画线法 void MidPoint_Line(x0, y0, x1, y1, color) i nt x0, y0, x1, y1, color; { int a, b, delta1, delta2, d, x, y; a=y0-y1; b=x1-x0; d=2*a+b; delta1=2*a; del...

求中点画线算法的c代码直线方程:a*x+b*y+c=0, p1(x1,y1), p2(x2,y2)==>a=y1-y2;b=x2-x1. 点到直线的距离:distance=|a*x0-b*y0+c|/sqrt(a*a + b*b) 设directionX,directionY分别为从(x1,y1)==>(x2,y2)...

求计算机图形学中的直线绘制函数法 DDA算法中点法和Bresenham算法的特点是: 1,不必计算直线之斜率,因此不做除法; 2,不用浮点数,只用整数; 3,只做整数加减法和乘2运算,而乘2运算可以用硬件移位实现. Bresenham算法速度很快,并适于用硬件...

利用C语言编写能够画出任意斜率的直线算法程序利用中点画线法改将DDA算法改成中点划线算法即可// DDA画线View.cpp : implementation of the CDDAView class//#include "stdafx.h"#include "DDA画线.h"#include "DDA画线Doc.h"#include "DDA画线...

司法考试各个法的分值排序是什么样的关于司法考试卷一 纵观历年司考,个人认为卷一不存在难度问题,考生之所以本卷未得高分,原因在于被本卷的广度难倒。而对付这种“广在天边,细如针尖”的司考题,我们的备考也要针锋...

根据预算法的规定国务院应当及时下达关于编制下一年度预算方预算的审批 一、下达和上报 国务院于每年11月10日前向省、自治区、直辖市政府和中央各部门下达编制下一年度预算草案的指示,提出编制预算草案的原则和要求。 财政部根据国务...

姐姐按照预算法编制医院的预算模版你有吗我没有模版。下面编制思路供你参考吧。 医院收入预算的编制 医院收入预算的编制,应参考上年度实际收入水平,结合预算年度医院事业发展和工作任务计划,以及医疗收费标准等因素确...

通过MATLAB遗传算法的思想来解决fx x sin10pi x 2首先在matlab命令窗口输入f=(x)-(x*sin(10*pi*x)+2) 输出结果为 >> f=(x)-(x*sin(10*pi*x)+2) f = (x)-(x*sin(10*pi*x)+2) 接着输入gatool会打开遗传算法工具箱 按上图所示...

进口车关税怎么算法律知识大全中国加入WTO后,逐年减让进口汽车的关税,目前小轿车进口关税为25%加17%增值税,另外根据车辆的排量加消费税。 排气量在1.0升以下(含1.0升)的 1% 排气量在1.0升以上至1.5升(含1.5升)...

推荐阅读
图文推荐
栏目列表