基于链表的对分排序算法及实现

基于链表的对分排序算法及实现


2024年4月30日发(作者:)

维普资讯

2002年第2期 微机发展 

文章编号;1005—3751(2002)02—0055—03 

基于链表的对分排序算法及实现 

The Algorithm and Implementation of Divide Equally Sort on Link—list 

张磊(潍坊学院计算中 ,山东潍坊261{341) 

(Ceftter of Computer,Wd[ang College,Weilang SD 261041,China) 

typedd Bc~ nc ̄le 

ZI-I ̄n4G 

精要:针对以链表为存储结构的数据对象盛行捧序方法研 

究。具体描述了对分排序的算法思想,井给出了实现排序算法 

的有关函数。 

d如fype d日[日; 

㈣I node 口Ⅲ{ 

关t调:对分排序;算法;排序函数 

ABSTRACT:Stx.-diesthe 9qnm目± 删,蛾删r曝∞the data ob— 

j氍t l_sed link—list船Btore虬rLIc“ e,and describes the algorithm 

method on divide equally s0n in d aU also.s 

tlc ̄s are given tO implelyl ̄t the algorithem. 

lNODE; 

(3)binary sort():对丹排序函数,功髓为: 

①生成kj、large、order链表的头结点; 

0对丹尚未排序的head链表(K集合),生成一越 

排序用less、large链表; 

③调用find—less()、find—large()函数,求得一趟排 

序的最小值和最大值,依欢插入order链表中; 

④控制实现各趟排序,直至排序结束。 

(4)find less()函数:求最小值函数,初始数据为 

binary—sort()函数生成的l啪链表.若非空,则不断对 

related[unc— 

KEYWORDS:Di,ide E目ualfly Sort;Algorithm;Sort Function 

中圉分娄号:TP301 6 文献标识码:A 

1算法描述 

设K=1 l^ ∈e&.mtype,1≤i≤ 为一组关 

键字集舍.其中eh'mtype为算法语言允许的数据类型, 

对丹排序过程如下: 

(1)自^,起.依欢将K中元素两两分组,收集每 

分,将瑶I豫的较大结点插入head链表,直至less只有 

个值结点时函数结束。该结点即为本趟排序的最小 

(5)find—lrge()函数:求最大值函敦,初始数据为 a

组{ ,a…l的小值组成集合tess,每组其余元素组 

(2)若 为奇数,设rain( ~a 1)为其二元素 

结点。 

成集合large; 

的最小值,则当a <rain(a _2I 一1)时,d 加入less 

集合。否则加入large集合;则对于K。其最小元素必在 

less中.其最大元素必在large中; 

(3)分别在less和large中取出最小值和最大值, 

加入有序集合order中; 

(4)依欢收集k 和large集合为K; 

binary—sort()函数生成的large链表,若非空,则不断对 

丹,将删除的较小结点插入head链表.直至lar 只有 

十值结点时函数结束。该结点即为本趟排序的最大 

2.2捧序函数 

2.2.1 binary—srrt()函数 

NODE*b LnBIy 州(NODE*beBd) 

{NODE c |*le ,*【啦 P. q. b ^ 1籼; 

结点。 

(5)重复(1)、(2)、(3)、(4)直至集合K= ,别 

order即为有序集合。 

2算法实现 

2 1定义 

D wfi(NODE*h bc( 删fN0DE】) 

; new DExt NU'LL:∞d时 n w;I= 

rl w=(NODE )r∞】l0c【8删

ne 

N0DE)); 

NULL;tessfif nBw: 

r州=【N()DE )m l0c【B酬

w—r =NULL ̄【a …

N0DE)); 

{ 

(1)head、less、large、order:带附加头结点的单链 

表,K存储于1lead中: 

(2)NODE:head、less、large、order的结点类型. 

定义为: 

(戢藕日期]2o01一l0—08 

while(} 一DEml=NULL) 

{q=heedl P=q一…;3=has: 

whde(pl=,NULL&&口_-Dexll fi fNULL) 

li“ d日Ia>p-+DHt・dB船) 

l xt P rl I;p ̄next=P n pnⅢ| 

l艘t; q pj P=r

维普资讯

微机发展 2002年第2期 

d舶 

d冀 

I t=p; nEm- 

; 

mxt}q nem{P rnem‘ 

Ir・口瞄t=p;q一呲l—P 

q P mt;p q’ } 

r.r’em h_d nⅢ; 

h_d_- :II t‘ 

s。 t; ̄neXt NULL 

【 一NuLL&& d日t d山} 

I口一口E时=NULL; 

Ⅱ(head ̄D味t一一t==NULL&&【 B_.mm=fiNULL)f 

l】∞ ・nen=h 一nem;h 一口Em=NULLII 

eI dfp—Den==NULL&& ̄-data> dm) 

tr ̄ ̄xt=h 一n嘲' 

heB 眦l=p; 

I口一 t=NULL ̄ 一nem=P;} 

h r I hea十.net‘; 

3算法分析 

3 1空阃复杂性分析 

h∞c ・next=NULL; 

fiml 1岛日c Jess.head); 

J B_.nem =t—D味t; 

(1)数据存储采用带有头结点的单链丧结构.需 

要4十NODE类型结点,分别用于heod、less、large、 

order的头结点。 

(2)排序过程中额外数据空间开销为0。 

(3)需要多个指针变量 

3.2时间复杂性分析 

t—n%I 1∞ 

… ; 

; 

br+ =NULL; 

tim[一 

if【1 

flarge,h_d); 

nEt!=NULL) 

{hr目r 一r・咖

r. 

 t—net“ 

=【卸 r・D味t 【卸 r・D娃t=NUL L{ 

算法的时间复杂性主要取决于每趟获再最小值和 

获得最大值的算法,由于继续调用对分算法获再每趟 

最小(大)值时,每趟捧序经过的是二叉树翟结构过程. 

时间复杂性为0( *1o啦 )。 

3.3穗定性分析 

收集K时并未考虑对于 = ,(i≠』,i>J)时 

rtt ̄1.order) 

2.2.2 

nd— ()函数 

NODE*b.NODE*h ) l 

;NODE t. q1 pl 

whdlc(1e ̄t! ̄NULL&&k't+D t—n t!=NUU 

的韧始顺序,因此,收集的K可能使 ,位于 之前.故 

为不稳定排序。 

I口=Ie ;P。q ̄mmtl 

white(p!=NULL ̄& next}=NULL) 

Ii[(p ̄-data<p n r・d日 ) 

I P nett;q=P; 

d 

4实验数据 

K={32,12.78,一66,35.178.98,99,23,56,57}。 

n既l r’net‘;P=t—ne t}l 

各趟捧序的数据变化如下: 

n xt P D娃‘;q P next}p 

t* 

It p; nE ;} 

第一趟head:32,12.78.一66,35,178.98,99,23, 

56.57 

r‘ne =headse

} t tl 

less:12,一66,35.98.23 

d【P1 

NULL&&p ̄dam>q一.d咖) 

next=NULL;p—ne t=h 一 ; =口; 

large:32,78,178,99,56,57 

ord :一66.178 

第二趟head:32,78.99,56,57,12.35,98,23 

2 2.3 

lN0∞

n 一 ̄rge()函数 

.NODE* ) 

・ 

l郾:32.56,12.35,23 

large:78,99,57.98 

order:一66.12,99,178 

find—large(NODE 

・ -* 

wliIf hr目e—neIt!=NULL&&I ge 口强 — 

D味t!=NULL】 

第兰趟head:78,57.98,32.56.35.23 

lem:57.32,35.23 

hrge:78,98.56 

order:一66,12.23.98.99,178 

tffp=r.mI; 

Iq=1 ;P=q—n ” 

wh ̄e(口!=NULL&&F'- ̄tl=NULL) 

}dfp一.山 > D自 da扭) 

It=p—D {q=p;p—nen t ̄

—1曩麓蘩蠹襄鬣警舞释…了 

维普资讯

2002年第2期 微机发展 

文章编号:1005—3751(2002)02—0057—04 

基于OpenGL的复杂嗑武的纹理映射 

Texture Mapping on Complex Surface Based on OpenGL 

陈利平 ,丁纪云 ,李思昆 (1.湖南建精高等专科学校计算机系,湖南衡阳421008;2.湖南轻工业 

专科学校计算机系,湖南长沙410007;3.国防科技大学计算机学院,湖南长沙410073) 

CHENLi ping’.DINGJi-yun .LI Si-kun (1.HunanBuildingMaterialsTrahaingSchoo1.Hengyan8HNX421008;2・ 

Hunan Light Indtmtrv Training School,Changsha HNX 410007;3 Nationa]Univ of Defense Teeh.,Char ̄ha HNX 

410073.China) 

擅要:介绍利用OpenGL和Vistud C ’6.0进行复杂曲面的 

机图形学的一十重要研究方向。当前的方法一般分为 

纹理映射。利用解二攻椭圆偏散分方程的方法,得到任意曲 

面到平面的菸形映射。此方法可 自动分配纹理坐标到复杂 

的投有起伏的曲面.有豉地克服复杂曲面的自动纹理映射的 

变形+避免了纹理扰动。 

关t调:OpenGL;纹理映射;表面参数化;有限元;共形几何 

ABSTRACE:Tk p8 kxtr ̄

q 

兰类:基于几何造量、基于固像绘髑及基于几何和霉像 

混合。基于几何造型的方法通常利用造型软件(如 

3DMAX、AutoCAD等)手工搭建模型.特点是工作量 

大,不逼真;基于图像绘制方法的场景模型由场景的一 

恤m出 日蛳W 咖 嘲

础m 

 

个图像集合和与之对应的探度映射组成.特点是存储 

量大、交互性羞;基于几何和图像的方法通常用纹理映 

andVisu ̄C’ .In dismetho ̄口∞啦

isobr ̄ed m ̄thodd v吨B second 出p 删

a§由∞t目 

 

∞一 

be 

射n】技术.特点是交互性、逼真性好。本文在相应纹理 

映射技术的基础上.给出了基于共形几何的纹理映射 

方法。利用求二砍椭圆偏傲分方程的解来得到曲面与 

平面的共形映射.可自动分配纹理坐标到复杂的段有 

mtial equa ̄oa(PDE).1kme ̄cdmay 衄m 

ordinatesto n咖

ed衄

a 

Ⅶ 咖SlZa'ac ̄s Afmlteehmmtm ̄thod锄

map眦technique a trlangu ̄ed酽响础

the rn曲

dE茸 两∞d 

surface 戡.may eH ̄ivdy 呵 

n ng and州

I d∞m 

I肚 

起伏的曲面,有技地克服复杂曲面的自动纹理姨射的 

变形.避免纹理扰动,很好地解决了纹理的自动魄射。 

砒峨d the DbIem d hl ̄diag 

KEYWORI ̄:OpenGL:Texture Mapping;Sudace Par n毗ea・ 

z ̄tiort;Fi te E]emems;Con[0r【Ⅱ Geometry 

2 OpenGL简述 

中蕾升娄号:TP301 6:TP391 41 

1 l言 

文献标讯码:A 

OpenGL[ (0*n Graphics Library)是SGI公司开 

发的一个非常优秀的开放式、可独立于操作系统和硬 

件环境的三维图形软件库,早期主要应用在专业的图 

如侗真宴地在计算机中表达现实世界一直是计算 

形工作站上。近几年随着微机硬件性能的显著提高. 

配合32位操作系统的出现.使得微机整体性能已经接 

近或超过了早期的工作站水平.因此.现在可以在微机 

[收幡日期】2001—05一l5 

[作者筒开】昨利平‘lq66一).女.胡南整域人.讲师.理为冒睹科太 

什算机学院研究学者.研究方向:计算机辅助设计和直拙现宴;丁纪云 

(196,一).女.四川成都凡.讲师.理为国防科大计算机学院研究学者. 

上方便地实现OpenGL的应用。由于其开放性和高度 

可重用性,目前已成为高性能图形和交互式视景处理 

的工业标准.可在Windows 95/98,windows NT,Mac. 

研究方向:计算机辅助援计和虚拟现实;卒思昆(1941--).男.山市青 

岛^.教授.博士生寻师.主蔓研究方向:什算机辅助援计和直拟理宴。 

os/2及Unix上应用。在实际应用中.很多优秀的软 

178 

第四趟head:78,56.57,32,351e ̄:56,32 

large:78,57.35 

order:一66,12.23,32.78,98.99,178 

第六越head:56 

1ess:56 

第五趟head:57.35,56 

less:35 

large:57.56 

large=空 

order:一66,12,23.32,35.56,57,78,98 

99,178 

order:一66.12,23.32,35.57,78.98,99 

捧序结柬。 


发布者:admin,转转请注明出处:http://www.yc00.com/news/1714446136a2448034.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信