外文翻译-简单分类_第1页
外文翻译-简单分类_第2页
外文翻译-简单分类_第3页
外文翻译-简单分类_第4页
外文翻译-简单分类_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

外文原文SIMPLESORTINGOVERVIEWASSOONASYOUCREATEASIGNIFICANTDATABASE,YOULLPROBABLYTHINKOFREASONSTOSORTITINVARIOUSWAYSYOUNEEDTOARRANGENAMESINALPHABETICALORDER,STUDENTSBYGRADE,CUSTOMERSBYZIPCODE,HOMESALESBYPRICE,CITIESINORDEROFINCREASINGPOPULATION,COUNTRIESBYGNP,STARSBYMAGNITUDE,ANDSOONSORTINGDATAMAYALSOBEAPRELIMINARYSTEPTOSEARCHINGITASABINARYSEARCH,WHICHCANBEAPPLIEDONLYTOSORTEDDATA,ISMUCHFASTERTHANALINEARSEARCHSORTINGISSOIMPORTANTANDPOTENTIALLYSOTIMECONSUMING,ITHASBEENTHESUBJECTOFEXTENSIVERESEARCHINCOMPUTERSCIENCE,ANDSOMEVERYSOPHISTICATEDMETHODSHAVEBEENDEVELOPEDINTHISCHAPTERWELLLOOKATTHREEOFTHESIMPLERALGORITHMSTHEBUBBLESORT,THESELECTIONSORT,ANDTHEINSERTIONSORTTHETECHNIQUESDESCRIBEDINTHISCHAPTER,WHILEUNSOPHISTICATEDANDCOMPARATIVELYSLOW,ARENEVERTHELESSWORTHEXAMININGBESIDESBEINGEASIERTOUNDERSTAND,THEYAREACTUALLYBETTERINSOMECIRCUMSTANCESTHANTHEMORESOPHISTICATEDALGORITHMSTHESORTINGALGORITHMSAREIMPLEMENTEDASMETHODSOFSIMILARARRAYCLASSESBESURETOTRYOUTTHEWORKSHOPAPPLETSINCLUDEDINTHISCHAPTERTHEYAREMOREEFFECTIVEINEXPLAININGHOWTHESORTINGALGORITHMSWORKTHANPROSEANDSTATICPICTURESCOULDEVERBEHOWWOULDYOUDOITIMAGINETHATYOURKIDSLEAGUEBASEBALLTEAMISLINEDUPONTHEFIELD,THEREGULATIONNINEPLAYERS,PLUSANEXTRA,HAVESHOWNUPFORPRACTICEYOUWANTTOARRANGETHEPLAYERSINORDEROFINCREASINGHEIGHTWITHTHESHORTESTPLAYERONTHELEFT,FORTHETEAMPICTUREHOWWOULDYOUGOABOUTTHISSORTINGPROCESSASAHUMANBEING,YOUHAVEADVANTAGESOVERACOMPUTERPROGRAMYOUCANSEEALLTHEKIDSATONCE,ANDYOUCANPICKOUTTHETALLESTKIDALMOSTINSTANTLYYOUDONTNEEDTOLABORIOUSLYMEASUREANDCOMPAREEVERYONEALSO,THEKIDSDONTNEEDTOOCCUPYPARTICULARPLACESTHEYCANJOSTLEEACHOTHER,PUSHEACHOTHERALITTLETOMAKEROOM,ANDSTANDBEHINDORINFRONTOFEACHOTHERAFTERSOMEADHOCREARRANGING,YOUWOULDHAVENOTROUBLEINLININGUPALLTHEKIDS,ACOMPUTERPROGRAMISNTABLETOGLANCEOVERTHEDATAINTHISWAYITCANONLYCOMPARETWOPLAYERSATONCE,BECAUSETHATSHOWTHECOMPARISONOPERATORSWORKTHISTUNNELVISIONONTHEPARTOFALGORITHMSWILLBEARECURRINGTHEMETHINGSMAYSEEMSIMPLETOUSHUMANS,BUTTHEALGORITHMCANTSEETHEBIGPICTUREANDMUST,THEREFORE,CONCENTRATEONTHEDETAILSANDFOLLOWSOMESIMPLERULESTHETHREEALGORITHMSINTHISCHAPTERALLINVOLVETWOSTEPS,EXECUTEDOVERANDOVERUNTILTHEDATAISSORTED1COMPARETWOITEMS2SWAPTWOITEMSORCOPYONEITEMHOWEVER,EACHALGORITHMHANDLESTHEDETAILSINADIFFERENTWAYBUBBLESORTTHEBUBBLESORTISNOTORIOUSLYSLOW,BUTITSCONCEPTUALLYTHESIMPLESTOFTHESORTINGALGORITHMS,ANDFORTHATREASONISAGOODBEGINNINGFOROUREXPLORATIONOFSORTINGTECHNIQUESBUBBLESORTINGTHEBASEBALLPLAYERSIMAGINETHATYOURENEARSIGHTEDLIKEACOMPUTERPROGRAMSOTHATYOUCANSEEONLYTWOOFTHEBASEBALLPLAYERSATTHESAMETIME,IFTHEYRENEXTTOEACHOTHERANDIFYOUSTANDVERYCLOSETOTHEMGIVENTHISIMPEDIMENT,HOWWOULDYOUSORTTHEMLETSASSUMETHEREARENPLAYERS,ANDTHEPOSITIONSTHEYRESTANDINGINARENUMBEREDFROM0ONTHELEFTTON1ONTHERIGHTTHEBUBBLESORTROUTINEWORKSLIKETHISYOUSTARTATTHELEFTENDOFTHELINEANDCOMPARETHETWOKIDSINPOSITIONS0AND1IFTHEONEONTHELEFTIN0ISTALLER,YOUSWAPTHEMIFTHEONEONTHERIGHTISTALLER,YOUDONTDOANYTHINGTHENYOUMOVEOVERONEPOSITIONANDCOMPARETHEKIDSINPOSITIONS1AND2AGAIN,IFTHEONEONTHELEFTISTALLER,YOUSWAPTHEMHEREARETHERULESYOUREFOLLOWING1COMPARETWOPLAYERS2IFTHEONEONTHELEFTISTALLER,SWAPTHEM3MOVEONEPOSITIONRIGHTYOUCONTINUEDOWNTHELINETHISWAYUNTILYOUREACHTHERIGHTENDYOUHAVEBYNOMEANSFINISHEDSORTINGTHEKIDS,BUTYOUDOKNOWTHATTHETALLESTKIDISONTHERIGHTTHISMUSTBETRUE,BECAUSEASSOONASYOUENCOUNTERTHETALLESTKID,YOULLENDUPSWAPPINGHIMEVERYTIMEYOUCOMPARETWOKIDS,UNTILEVENTUALLYHEORSHEWILLREACHTHERIGHTENDOFTHELINETHISISWHYITSCALLEDTHEBUBBLESORTASTHEALGORITHMPROGRESSES,THEBIGGESTITEMS“BUBBLEUP“TOTHETOPENDOFTHEARRAYAFTERTHISFIRSTPASSTHROUGHALLTHEDATA,YOUVEMADEN1COMPARISONSANDSOMEWHEREBETWEEN0ANDN1SWAPS,DEPENDINGONTHEINITIALARRANGEMENTOFTHEPLAYERSTHEITEMATTHEENDOFTHEARRAYISSORTEDANDWONTBEMOVEDAGAINNOWYOUGOBACKANDSTARTANOTHERPASSFROMTHELEFTENDOFTHELINEAGAINYOUGOTOWARDTHERIGHT,COMPARINGANDSWAPPINGWHENAPPROPRIATEHOWEVER,THISTIMEYOUCANSTOPONEPLAYERSHORTOFTHEENDOFTHELINE,ATPOSITIONN2,BECAUSEYOUKNOWTHELASTPOSITION,ATN1,ALREADYCONTAINSTHETALLESTPLAYERTHISRULECOULDBESTATEDASWHENYOUREACHTHEFIRSTSORTEDPLAYER,STARTOVERATTHELEFTENDOFTHELINEYOUCONTINUETHISPROCESSUNTILALLTHEPLAYERSAREINORDERTHISISALLMUCHHARDERTODESCRIBETHANITISTODEMONSTRATE,SOLETSWATCHTHEBUBBLESORTWORKSHOPAPPLETATWORKTHEBUBBLESORTWORKSHOPAPPLETSTARTTHEBUBBLESORTWORKSHOPAPPLETYOULLSEESOMETHINGTHATLOOKSLIKEABARGRAPH,WITHTHEBARHEIGHTSRANDOMLYARRANGED,THERUNBUTTONTHISISATWOSPEEDGRAPHYOUCANEITHERLETITRUNBYITSELFORYOUCANSINGLESTEPTHROUGHTHEPROCESSTOGETAQUICKIDEAOFWHATHAPPENS,CLICKTHERUNBUTTONTHEALGORITHMWILLBUBBLESORTTHEBARSWHENITFINISHES,IN10SECONDSORSO,THEBARSWILLBESORTED,THENEWBUTTONTODOANOTHERSORT,PRESSTHENEWBUTTONNEWCREATESANEWSETOFBARSANDINITIALIZESTHESORTINGROUTINEREPEATEDPRESSESOFNEWTOGGLEBETWEENTWOARRANGEMENTSOFBARSARANDOMORDERASSHOWNINFIGURE35,ANDANINVERSEORDERINGWHERETHEBARSARESORTEDBACKWARDTHISINVERSEORDERINGPROVIDESANEXTRACHALLENGEFORMANYSORTINGALGORITHMSTHESTEPBUTTONTHEREALPAYOFFFORUSINGTHEBUBBLESORTWORKSHOPAPPLETCOMESWHENYOUSINGLESTEPTHROUGHASORTYOULLBEABLETOSEEEXACTLYHOWTHEALGORITHMCARRIESOUTEACHSTEPSTARTBYCREATINGANEWRANDOMLYARRANGEDGRAPHWITHNEWYOULLSEETHREEARROWSPOINTINGATDIFFERENTBARSTWOARROWS,LABELEDINNERANDINNER1,ARESIDEBYSIDEONTHELEFTANOTHERARROW,OUTER,STARTSONTHEFARRIGHTTHENAMESARECHOSENTOCORRESPONDTOTHEINNERANDOUTERLOOPVARIABLESINTHENESTEDLOOPSUSEDINTHEALGORITHMCLICKONCEONTHESTEPBUTTONYOULLSEETHEINNERANDTHEINNER1ARROWSMOVETOGETHERONEPOSITIONTOTHERIGHT,SWAPPINGTHEBARSIFITSAPPROPRIATETHESEARROWSCORRESPONDTOTHETWOPLAYERSYOUCOMPARED,ANDPOSSIBLYSWAPPED,INTHEBASEBALLSCENARIOAMESSAGEUNDERTHEARROWSTELLSYOUWHETHERTHECONTENTSOFINNERANDINNER1WILLBESWAPPED,BUTYOUKNOWTHISJUSTFROMCOMPARINGTHEBARSIFTHETALLERONEISONTHELEFT,THEYLLBESWAPPEDMESSAGESATTHETOPOFTHEGRAPHTELLYOUHOWMANYSWAPSANDCOMPARISONSHAVEBEENCARRIEDOUTSOFARACOMPLETESORTOF10BARSREQUIRES45COMPARISONSAND,ONTHEAVERAGE,ABOUT22SWAPSCONTINUEPRESSINGSTEPEACHTIMEINNERANDINNER1FINISHGOINGALLTHEWAYFROM0TOOUTER,THEOUTERPOINTERMOVESONEPOSITIONTOTHELEFTATALLTIMESDURINGTHESORTINGPROCESS,ALLTHEBARSTOTHERIGHTOFOUTERARESORTEDTHOSETOTHELEFTOFANDATOUTERARENOTTHESIZEBUTTONTHESIZEBUTTONTOGGLESBETWEEN10BARSAND100BARSWHATTHE100RANDOMBARSLOOKLIKEYOUPROBABLYDONTWANTTOSINGLESTEPTHROUGHTHESORTINGPROCESSFOR100BARSUNLESSYOUREUNUSUALLYPATIENTPRESSRUNINSTEAD,ANDWATCHHOWTHEBLUEINNERANDINNER1POINTERSSEEMTOFINDTHETALLESTUNSORTEDBARANDCARRYITDOWNTHEROWTOTHERIGHT,INSERTINGITJUSTTOTHELEFTOFTHESORTEDBARSTHEBARSTOTHERIGHTOFTHEREDLONGESTARROWARESORTEDTHEBARSTOTHELEFTAREBEGINNINGTOLOOKSORTED,BUTMUCHWORKREMAINSTOBEDONEIFYOUSTARTEDASORTWITHRUNANDTHEARROWSAREWHIZZINGAROUND,YOUCANFREEZETHEPROCESSATANYPOINTBYPRESSINGTHESTEPBUTTONYOUCANTHENSINGLESTEPTOWATCHTHEDETAILSOFTHEOPERATION,ORPRESSRUNAGAINTORETURNTOHIGHSPEEDMODETHEDRAWBUTTONSOMETIMESWHILERUNNINGTHESORTINGALGORITHMATFULLSPEED,THECOMPUTERTAKESTIMEOFFTOPERFORMSOMEOTHERTASKTHISCANRESULTINSOMEBARSNOTBEINGDRAWNIFTHISHAPPENS,YOUCANPRESSTHEDRAWBUTTONTOREDRAWALLTHEBARSDOINGSOPAUSESTHERUN,SOYOULLNEEDTOPRESSTHERUNBUTTONAGAINTOCONTINUEYOUCANPRESSDRAWATANYTIMETHERESEEMSTOBEAGLITCHINTHEDISPLAYJAVACODEFORABUBBLESORTINTHEBUBBLESORTJAVAPROGRAM,SHOWNINLISTING31,ACLASSCALLEDARRAYBUBENCAPSULATESANARRAYA,WHICHHOLDSVARIABLESOFTYPEDOUBLEINAMORESERIOUSPROGRAM,THEDATAWOULDPROBABLYCONSISTOFOBJECTS,BUTWEUSEAPRIMITIVETYPEFORSIMPLICITYWELLSEEHOWOBJECTSARESORTEDINTHEOBJECTSORTJAVAPROGRAMINTHELASTSECTIONOFTHISCHAPTERALSO,TOREDUCETHESIZEOFTHELISTING,WEDONTSHOWFINDANDDELETEMETHODSWITHTHEARRAYBUBCLASS,ALTHOUGHTHEYWOULDNORMALLYBEPARTOFASUCHACLASSLISTING31THEBUBBLESORTJAVAPROGRAM/BUBBLESORTJAVA/DEMONSTRATESBUBBLESORT/TORUNTHISPROGRAMCJAVABUBBLESORTAPP/CLASSARRAYBUBPRIVATEDOUBLEA/REFTOARRAYAPRIVATEINTNELEMS/NUMBEROFDATAITEMS/PUBLICARRAYBUBINTMAX/CONSTRUCTORANEWDOUBLEMAX/CREATETHEARRAYNELEMS0/NOITEMSYET/PUBLICVOIDINSERTDOUBLEVALUE/PUTELEMENTINTOARRAYANELEMSVALUE/INSERTITNELEMS/INCREMENTSIZE/PUBLICVOIDDISPLAY/DISPLAYSARRAYCONTENTSFORINTJ0J1OUT/OUTERLOOPBACKWARDFORIN0INAIN1/OUTOFORDERSWAPIN,IN1/SWAPTHEM/ENDBUBBLESORT/PRIVATEVOIDSWAPINTONE,INTTWODOUBLETEMPAONEAONEATWOATWOTEMP/ENDCLASSARRAYBUB/CLASSBUBBLESORTAPPPUBLICSTATICVOIDMAINSTRINGARGSINTMAXSIZE100/ARRAYSIZEARRAYBUBARR/REFERENCETOARRAYARRNEWARRAYBUBMAXSIZE/CREATETHEARRAYARRINSERT77/INSERT10ITEMSARRINSERT99ARRINSERT44ARRINSERT55ARRINSERT22ARRINSERT88ARRINSERT11ARRINSERT00ARRINSERT66ARRINSERT33ARRDISPLAY/DISPLAYITEMSARRBUBBLESORT/BUBBLESORTTHEMARRDISPLAY/DISPLAYTHEMAGAIN/ENDMAIN/ENDCLASSBUBBLESORTAPPTHECONSTRUCTORANDTHEINSERTANDDISPLAYMETHODSOFTHISCLASSARESIMILARTOTHOSEWEVESEENBEFOREHOWEVER,THERESANEWMETHODBUBBLESORTWHENTHISMETHODISINVOKEDFROMMAIN,THECONTENTSOFTHEARRAYAREREARRANGEDINTOSORTEDORDERTHEMAINROUTINEINSERTS10ITEMSINTOTHEARRAYINRANDOMORDER,DISPLAYSTHEARRAY,CALLSBUBBLESORTTOSORTIT,ANDTHENDISPLAYSITAGAINHERESTHEOUTPUT77994455228811066330112233445566778899THEBUBBLESORTMETHODISONLYFOURLINESLONGHEREITIS,EXTRACTEDFROMTHELISTINGPUBLICVOIDBUBBLESORTINTOUT,INFOROUTNELEMS1OUT1OUT/OUTERLOOPBACKWARDFORIN0INAIN1/OUTOFORDERSWAPIN,IN1/SWAPTHEM/ENDBUBBLESORTTHEIDEAISTOPUTTHESMALLESTITEMATTHEBEGINNINGOFTHEARRAYINDEX0ANDTHELARGESTITEMATTHEENDINDEXNELEMS1THELOOPCOUNTEROUTINTHEOUTERFORLOOPSTARTSATTHEENDOFTHEARRAY,ATNELEMS1,ANDDECREMENTSITSELFEACHTIMETHROUGHTHELOOPTHEITEMSATINDICESGREATERTHANOUTAREALWAYSCOMPLETELYSORTEDTHEOUTVARIABLEMOVESLEFTAFTEREACHPASSBYINSOTHATITEMSTHATAREALREADYSORTEDARENOLONGERINVOLVEDINTHEALGORITHMTHEINNERLOOPCOUNTERINSTARTSATTHEBEGINNINGOFTHEARRAYANDINCREMENTSITSELFEACHCYCLEOFTHEINNERLOOP,EXITINGWHENITREACHESOUTWITHINTHEINNERLOOP,THETWOARRAYCELLSPOINTEDTOBYINANDIN1ARECOMPAREDANDSWAPPEDIFTHEONEININISLARGERTHANTHEONEININ1FORCLARITY,WEUSEASEPARATESWAPMETHODTOCARRYOUTTHESWAPITSIMPLYEXCHANGESTHETWOVALUESINTHETWOARRAYCELLS,USINGATEMPORARYVARIABLETOHOLDTHEVALUEOFTHEFIRSTCELLWHILETHEFIRSTCELLTAKESONTHEVALUEINTHESECOND,THENSETTINGTHESECONDCELLTOTHETEMPORARYVALUEACTUALLY,USINGASEPARATESWAPMETHODMAYNOTBEAGOODIDEAINPRACTICE,BECAUSETHEFUNCTIONCALLADDSASMALLAMOUNTOFOVERHEADIFYOUREWRITINGYOUROWNSORTINGROUTINE,YOUMAYPREFERTOPUTTHESWAPINSTRUCTIONSINLINETOGAINASLIGHTINCREASEINSPEEDINVARIANTSINMANYALGORITHMSTHEREARECONDITIONSTHATREMAINUNCHANGEDASTHEALGORITHMPROCEEDSTHESECONDITIONSARECALLEDINVARIANTSRECOGNIZINGINVARIANTSCANBEUSEFULINUNDERSTANDINGTHEALGORITHMINCERTAINSITUATIONSTHEYMAYALSOBEHELPFULINDEBUGGINGYOUCANREPEATEDLYCHECKTHATTHEINVARIANTISTRUE,ANDSIGNALANERRORIFITISNTINTHEBUBBLESORTJAVAPROGRAM,THEINVARIANTISTHATTHEDATAITEMSTOTHERIGHTOFOUTERARESORTEDTHISREMAINSTRUETHROUGHOUTTHERUNNINGOFTHEALGORITHMONTHEFIRSTPASS,NOTHINGHASBEENSORTEDYET,ANDTHEREARENOITEMSTOTHERIGHTOFOUTERBECAUSEITSTARTSONTHERIGHTMOSTELEMENTEFFICIENCYOFTHEBUBBLESORTASYOUCANSEEBYWATCHINGTHEWORKSHOPAPPLETWITH10BARS,THEINNERANDINNER1ARROWSMAKE9COMPARISONSONTHEFIRSTPASS,8ONTHESECOND,ANDSOON,DOWNTO1COMPARISONONTHELASTPASSFOR10ITEMSTHISIS98765432145INGENERAL,WHERENISTHENUMBEROFITEMSINTHEARRAY,THEREAREN1COMPARISONSONTHEFIRSTPASS,N2ONTHESECOND,ANDSOONTHEFORMULAFORTHESUMOFSUCHASERIESISN1N2N31NN1/2NN1/2IS45WHENNIS10THUSTHEALGORITHMMAKESABOUTN2/2COMPARISONSIGNORINGTHE1,WHICHDOESNTMAKEMUCHDIFFERENCE,ESPECIALLYIFNISLARGETHEREAREFEWERSWAPSTHANTHEREARECOMPARISONS,BECAUSETWOBARSARESWAPPEDONLYIFTHEYNEEDTOBEIFTHEDATAISRANDOM,ASWAPISNECESSARYABOUTHALFTHETIME,SOTHEREWILLBEABOUTN2/4SWAPSALTHOUGHINTHEWORSTCASE,WITHTHEINITIALDATAINVERSELYSORTED,ASWAPISNECESSARYWITHEVERYCOMPARISONBOTHSWAPSANDCOMPARISONSAREPROPORTIONALTON2BECAUSECONSTANTSDONTCOUNTINBIGONOTATION,WECANIGNORETHE2ANDTHE4ANDSAYTHATTHEBUBBLESORTRUNSINON2TIMETHISISSLOW,ASYOUCANVERIFYBYRUNNINGTHEWORKSHOPAPPLETWITH100BARSWHENEVERYOUSEENESTEDLOOPSSUCHASTHOSEINTHEBUBBLESORTANDTHEOTHERSORTINGALGORITHMSINTHISCHAPTER,YOUCANSUSPECTTHATANALGORITHMRUNSINON2TIMETHEOUTERLOOPEXECUTESNTIMES,ANDTHEINNERLOOPEXECUTESNORPERHAPSNDIVIDEDBYSOMECONSTANTTIMESFOREACHCYCLEOFTHEOUTERLOOPTHISMEANSYOUREDOINGSOMETHINGAPPROXIMATELYNNORN2TIMESSOURCEBSBROGLIATTITGSMITHDATASTRUCTURESANDALGORITHMS,2013C中文翻译简单分类总的看法当你要创建一个巨大的数据库时,你很容易就会想到各种各样的数据排序方法。你可以用开头字母顺序来将姓名排序,依分数高低将学生排序,邮编来给顾客排序,依工资水平来给家庭排序,也可以依人口增长的速度给城市排序,依GDP的大小来给国家排序,甚至依体积的大小来给行星排序,等等。数据排序是数据查询的基础与前提。例如二进制计数查询,这项技术也是应用在数据排序的基础上的,因为这样做会提高排序和查询的速度。排序问题十分重要并有着良好的发展潜力。目前数据排序在电脑科学技术方面已经形成了一个单独的研究领域。截至今天,很多种高精尖端的方法已经被开发出来。在这里我将说一下相对比较简单的计算机排序程序冒泡式排序。冒泡式排序法、选择式排序法、插入式排序法都是数据排序方面比较简单的方法,之所以选择冒泡式是因为它的简单适用,更是目前数据排序技术的基础开端。现在要讲的是冒泡式技术,虽然不是十分尖端先进速的相对较慢,但它仍存在研究的价值。除此之外,它在某些情况下,甚至比尖端先进技术更为实用。计算机排序程序是以一个电脑简单程序为方法的工具,我确信通过这一部分的对排序程序的提炼,可以比单纯文章或静态图片的讲解更加生动易理解。我们应该怎样做想象一下,训练场上有一个儿童棒球队,其中有九个正式队员一个替补队员,这十个人在准备练习。现在你想让这些队员从矮到高站成一排准备拍照,你将如何进行“排序操作”呢作为人类,你一定会比电脑更先进。首先你可以用眼睛观察,可以在一瞬间挑出最高的小队员。这都免去了一一测量和相互比较。然后这些队员可以相互推挤着自己进行比较,腾出空间,自己站到某个人的前边或者后边。排好队,同时省去占用训练场地的麻烦。就这样在现实中,给队员拍照进行的排序是没有任何阻碍的。但是,一个电脑程序不可能使用这个方法去整理数据,根据操作系统的工作原理,它只能马上比较两个队员。这种事情对于人来说十分简单,但是电脑不可能像人一样抓住全景来看。因此将细节归纳可得出以下结论电脑程序包含两个步骤,并反复执行这两个步骤,这直到排序完成。1比较其中两项。2交换这两项或保持原状。当然,有的不同的程序会使用别的方法去整理数据。冒泡式排序法冒泡式排序法常被冠以“慢”的骂名。但是,它是最简单的排序概念。正因为如此,研究冒泡式排序将会是我们探索电脑排序技术的最好起点。冒泡式排序法排序棒球队员假设你是一个近视眼(电脑程序实际上就像一个近视眼的人),以至于你一次只能局限的看到两个队员,又或者队员们离的相对比较远,你离他们又很近,也可导致你只能看到队员中的一两个。在这个困难下,你要怎么给他们排序。现在假设让这十个队员一字排开,给他们从左到右进行编号,1、2、3N1号,冒泡式排序法常规工作就是这么工作。下面你要从左开始向右移动,去比较0和1位置上的两个队员的身高。如果左边的(0号)的队员高你就要将两个队员交换位置。如果右边(1号)的高一点,你就维持原状,继续向右移动,去比较1号和2号位置的队员。同样如果左边队员高,交换,否则,维持原状。下面是要履行的规则1比较两个队员2如果左边的较高,交换两者的位置3向右移动一个位置,继续你可以如此进行下去直到你到达队伍的最右端。这样的排序除了让你知道队伍最右侧站着的是最高的队员外,没有其他更多的意义。事实上也是如此,因为当你看到最高的队员时你也还是会让他比较交换下去,直到他站到队伍的最右边为止。这就是它叫做“冒泡式排序”的原因它的宗旨就是最大的泡先向上升。作为一个电脑程序,就这样一直“冒泡”直到程序结束。在第一次筛选整理了这些数据后,你一定做了N1次比较,同时进行了0至N1次交换。一切都是以最开始的两个队员的交换为基础。这一项在程序的最后已经排序完成,不用再去比较、移动。现在你回到原点重新开始,再次从左到右移动,去比较、交换或保持原状,但这次你会在N2号队员位置上结束此次排序。因为前次比较知道第N1号的队员现在一定时最高的队员,不需要再进行比较。这个规则就可以像下面所说的一样当你从最左边开始时,一直比较到完成,你重复继续这过程,一直到所有对员都按照要求的顺序站好。这种描述比演示要复杂难以理解。所以,我要讲一下冒泡排序工作站的程序的工作过程。冒泡排序工作站的程序打开冒泡排序工作站程序,你将看到一些很类似于数据曲线的东西,这些数据高度随机的进行排列。点击运行按钮有两个选项,可以让它自动运行也可以通过输入程序一步一步进行。若要快速地得到结果,单击运行按钮,计算机程序将自动进行冒泡式排序,大约10秒左右这些记录数据就会被排序完成,得到结果。新建按钮同时想要去做另一个排序,就要使用新建按钮。可以新键入一套新的记录数据让程序从头开始自己运行常规的排序。若再单击切换键就可以在两个记录地排序中进行切换操作了。其中一个命令在前台运行,另一个则在后台运行排序。这两个不同的命令程序的同时执行给电脑排序系统带来了新的技术挑战。步进按钮使用冒泡式排序工作程序的真正价值表现在你排序中的单个步骤你可以精确的看到计算机程序是如何进行每一步的,再使用新建按钮创建一个新的随机整理排序后,你将会看到三个指向不同数据记录的指针,被标记为INNER和INNER1的两个指针并排在左边,另一个标记为OUTER的指针从最右边开始运行。(名字的选择在程序的重叠循环中要与内部、外部变量保持一致)单击一次“STEP”按钮,你会看到INNER和INNER1指针向右移动一个位置。如果合适的话则交换数据这些指针始终与你比较的两个参数数据保持一致并且交换,在上面所说的棒球队员情况中也应该是这样解释。指针下面的信息表明INNER和INNER的内容将被交换,但实际上应清楚这只是通过比较数据如果更高的队员在左边他们将被交换在程序曲线上方的信息告诉你至今有多少个比较,判断和交换已经执行(10个数据的完全排序要求进行45次比较判断,平均有22次的交换)。再单击STEP按钮每一次INNER和INNER1完成从0到OUTER的整个路径这个“OUTER”指针就向左移动一个位置,在排序过程中所有的在OUTER右侧的数据将被排序,而在OUTER左侧(或在OUTER上)的将维持不动。排列按钮这个排列按钮在10条至100条数据之间进行切换除非你有不同寻常的耐心,否则你不可能想一步一步的去完成这100个数据的整理,排序。你可以单击“运行”按钮代替,仔细观察蓝色的INNER和INNER1指针是如何找到最高的未排序的数据,然后把这个数据从右边取下,并把它插入左边已排序好的数据中。如果你使用“运行”按钮启动分类排序,指针在周围迅速移动,你可以在任意时间点击“STEP”按钮去释放进程。然后,你可以按单一键去查看详细的操作或者再次点击“运行”返回高速模式。拖拽按钮有时当排序系统全速运行时电脑同时去执行其他任务,这就导致一部分数据不被移动。如果这种情况发生你可以点击“DRAW”键去刷新所有的数据。使用它会让程序暂停运转,若要继续运转只需单击“RUN”键。在程序运行过程中,你可以随时去按“DRAW”按钮,就像处理一个微小的差错一样,对其它没有影响。在冒泡排序中的JAVA代码在JAVA的冒泡排序进程中如表31所示的一个叫做ARRAYBUB的类在缩成了一个数列A它包含了一种DOUBLE变量,在一个更加细致、重要的的程序中,数据可能包含着对象。但为了简便,我们只使用原始的形式(我们将看到对象如同在OBJECTSORTJAVA中排序,在本章最后章节)。同时,为了减小表的大小我们现在ARRYBUB类中不显示FIND和DELETE路径,尽管他们时这一类的正常部分。LISTING31THEBUBBLESORTJAVAPROGRAM/BUBBLESORTJAVA/DEMONSTRATESBUBBLESORT/TORUNTHISPROGRAMCJAVABUBBLESORTAPP/CLASSARRAYBUBPRIVATEDOUBLEA/REFTOARRAYAPRIVATEINTNELEMS/NUMBEROFDATAITEMS/PUBLICARRAYBUBINTMAX/CONSTRUCTORANEWDOUBLEMAX/CREATETHEARRAYNELEMS0/NOITEMSYET/PUBLICVOIDINSERTDOUBLEVALUE/PUTELEMENTINTOARRAYANELEMSVALUE/INSERTITNELEMS/INCREMENTSIZE/PUBLICVOIDDISPLAY/DISPLAYSARRAYCONTENTSFORINTJ0J1OUT/OUTERLOOPBACKWARDFORIN0INAIN1/OUTOFORDERSWAPIN,IN1/SWAPTHEM/ENDBUBBLESORT/PRIVATEVOIDSWAPINTONE,INTTWODOUBLETEMPAONEAONEATWOATWOTEMP/ENDCLASSARRAYBUB/CLASSBUBBLESORTAPPPUBLICSTATICVOIDMAINSTRINGARGSINTMAXSIZE100/ARRAYSIZEARRAYBUBARR/REFERENCETOARRAYARRNEWARRAYBUBMAXSIZE/CREATETHEARRAYARRINSERT77/INSERT10ITEMSARRINSERT99ARRINSERT44ARRINSERT55ARRINSERT22

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论