蚂蚁文库
换一换
首页 蚂蚁文库 > 资源分类 > DOCX文档下载
 

常用排序算法javascript实现.docx

  • 资源ID:619408       资源大小:38.08KB        全文页数:14页
  • 资源格式: DOCX        下载权限:游客/注册会员    下载费用:10积分 【人民币10元】
快捷注册下载 游客一键下载
会员登录下载
三方登录下载: 微信快捷登录 QQ登录  
下载资源需要10积分 【人民币10元】
邮箱/手机:
温馨提示:
支付成功后,系统会自动生成账号(用户名和密码都是您填写的邮箱或者手机号),方便下次登录下载和查询订单;
支付方式: 微信支付    支付宝   
验证码:   换一换

 
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,既可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

常用排序算法javascript实现.docx

常用排序算法JAVASCRIPT实现1、插入排序1)算法描述和实现一般来说,插入排序都采用INPLACE在数组上实现。具体算法描述如下1从第一个元素开始,该元素可以认为已经被排序;2取出下一个元素,在已经排序的元素序列中从后向前扫描;3如果该元素(已排序)大于新元素,将该元素移到下一位置;4重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;5将新元素插入到该位置后;重复步骤25。JAVASCRIPT代码实现FUNCTIONINSERTIONSORTARRAY{IFOBJECTPROTOTYPETOSTRINGCALLARRAYSLICE8,1ARRAY{FORVARI1I0J}ARRAYJ1KEY}RETURNARRAY}ELSE{RETURNARRAYISNOTANARRAY}}3)算法分析最佳情况输入数组按升序排列。TNON最坏情况输入数组按降序排列。TNON2平均情况TNON2二、二分插入排序1)算法简介二分插入(BINARYINSERTSORT排序是一种在直接插入排序算法上进行小改动的排序算法。其与直接插入排序算法最大的区别在于查找插入位置时使用的是二分查找的方式,在速度上有一定提升。2)算法描述和实现一般来说,插入排序都采用INPLACE在数组上实现。具体算法描述如下从第一个元素开始,该元素可以认为已经被排序;取出下一个元素,在已经排序的元素序列中二分查找到第一个比它大的数的位置;将新元素插入到该位置后;重复上述两步。JAVASCRIPT代码实现FUNCTIONBINARYINSERTIONSORTARRAY{IFOBJECTPROTOTYPETOSTRINGCALLARRAYSLICE8,1ARRAY{FORVARI1ILEFTJ{ARRAYJ1ARRAYJ}ARRAYLEFTKEY}RETURNARRAY}ELSE{RETURNARRAYISNOTANARRAY}}3)算法分析最佳情况TNONLOGN最差情况TNON2平均情况TNON2三、选择排序1)算法简介选择排序SELECTIONSORT是一种简单直观的排序算法。它的工作原理首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。2)算法描述和实现N个记录的直接选择排序可经过N1趟直接选择排序得到有序结果。具体算法描述如下初始状态无序区为R1N,有序区为空;第I趟排序I1,2,3N1开始时,当前有序区和无序区分别为R1I1和RIN)。该趟排序从当前无序区中选出关键字最小的记录RK,将它与无序区的第1个记录R交换,使R1I和RI1N分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区;N1趟结束,数组有序化了。JAVASCRIPT代码实现FUNCTIONSELECTIONSORTARRAY{IFOBJECTPROTOTYPETOSTRINGCALLARRAYSLICE8,1ARRAY{VARLENARRAYLENGTH,TEMPFORVARI0I0I{HEAPIFYARRAY,I,HEAPSIZE}//堆排序FORVARJHEAPSIZE1J1J{TEMPARRAY0ARRAY0ARRAYJARRAYJTEMPHEAPIFYARRAY,0,HEAPSIZE}}ELSE{RETURNARRAYISNOTANARRAY}}/方法说明维护堆的性质PARAMARR数组PARAMX数组下标PARAMLEN堆大小/FUNCTIONHEAPIFYARR,X,LEN{IFOBJECTPROTOTYPETOSTRINGCALLARRSLICE8,1ARRAYIFLARRLARGEST{LARGESTL}IFRARRLARGEST{LARGESTR}IFLARGESTX{TEMPARRXARRXARRLARGESTARRLARGESTTEMPHEAPIFYARR,LARGEST,LEN}}ELSE{RETURNARRISNOTANARRAYORXISNOTANUMBER}}3)算法分析最佳情况TNONLOGN最差情况TNONLOGN平均情况TNONLOGN七、归并排序1)算法简介归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(DIVIDEANDCONQUER)的一个非常典型的应用。归并排序是一种稳定的排序方法。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2路归并。2)算法描述和实现具体算法描述如下把长度为N的输入序列分成两个长度为N/2的子序列;对这两个子序列分别采用归并排序;将两个排序好的子序列合并成一个最终的排序序列。JAVASCRIPT代码实现FUNCTIONMERGESORTARRAY,P,R{IFP1FORVARI1IARRAYIMAXARRAYI}SPACEMAXMIN1/NUMFORVARJ0J0K}BUCKETSINDEXK1ARRAYJ}ELSE{//空桶,初始化BUCKETSINDEXBUCKETSINDEXPUSHARRAYJ}}WHILENARRAYIMAXARRAYICARRAYICARRAYICARRAYI11}FORVARJMINJ0K{BCARRAYK1ARRAYKCARRAYK}RETURNB}3)算法分析当输入的元素是N个0到K之间的整数时,它的运行时间是ONK。计数排序不是比较排序,排序的速度快于任何比较排序算法。由于用来计数的数组C的长度取决于待排序数组中数据的范围(等于待排序数组的最大值与最小值的差加上1),这使得计数排序对于数据范围很大的数组,需要大量时间和内存。

注意事项

本文(常用排序算法javascript实现.docx)为本站会员(马老师)主动上传,蚂蚁文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知蚂蚁文库(发送邮件至2303240369@qq.com或直接QQ联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们


网站客服QQ:2303240369

copyright@ 2017-2027 mayiwenku.com 

网站版权所有  智慧蚂蚁网络

经营许可证号:ICP备2024020385号



收起
展开