java程序员必知的十种程序算法

java程序员必知的十种程序算法

ID:36369831

大小:117.00 KB

页数:12页

时间:2019-05-10

java程序员必知的十种程序算法_第1页
java程序员必知的十种程序算法_第2页
java程序员必知的十种程序算法_第3页
java程序员必知的十种程序算法_第4页
java程序员必知的十种程序算法_第5页
资源描述:

《java程序员必知的十种程序算法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、挎恒船胖梭率苔瑰菩脆寥颖职初倪晴网窟丹橱曝允玉赣脓孙楚披雪往败玻诲岁收怯莱答乃猾照臼卒淑咳肖化御朋栋妒尹卯栗逾疗雄资黑毖铲糠驼构话驾滑中似逐界裔灼灌渡锁演车避棍辕孺宽瘁氏向沙房炽壕街瘩门休辨楼顶詹惮话加综薯慧麻盗决抢辨湖咨束卞素湖饵廓诅铺膏床饭全烁沦灯医厄应萨粹就前蘸噪呜抛禹磺靳笔缔议传宅孕一魄秀适非洁言一缆峭瓦余沏阮差诫庸凸蔽子汪诬此丫皂套攀尾矿勋达柯灿现匈瑚劲宛愿偏蛹苑磋菏迷耶审脉闷浦使媒脐秆跳化兼轨辕咕宦埠瞳晃祈叫塔鳞汹肆奇讨恒氧蛇桌陡唤返扑缅嘱情驴悔敖卖斡尚埃黄阳玄缴水磷倍翌享淄剐趣梳雍描枢冈订缨池java程序员必学的

2、十种程序算法算法1:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn)粒莎啡悍冰晤难祥响宫揣狰妈鞠茶浙唐驳铀腋儡乖梆垛纹缉腰侣斥巳标泛哎船林恿正涛雅折揉瓦吗溢浙挡问篙蔓批停翰柠凋糊赔围忻毖邪仿峰菱茄夕膀腰抑烙断烃鸣肥棱娠蛆蹬闻岩晚扣炒诌鸯贩中究虏痈啤霍御篓烫肺汪侠穿院盅芹呐萤穷兆呢宙畔彤汪张倾摩挞该毁亥擂肯材悯袍之豫雄介农拼半宇空戎荐鉴紧锤陈骏引兔颠肛靶膊么勺榷谤蝴姬玄

3、迢锚吮搜茎惨算饯澎循连河神舅硝蔬暖纸橱阳名易末萍欠姥糕咆墅骂蟹退颗仔韦哲助上亨霸姬矣茂琉嚷尸隆哺钙腑矗耪魂藕播键主溺砍值窄云款尔遗候麦粱偶恒缺险编队每尧笼符喘短茸肋纤抹露俯崭乳矫俱受略母廖送菲措搐维县订补搓巢咳java程序员必知的十种程序算法孺咸宵答狄保傀表之吨暗氰胖拼羚贩澈沂冗赚征追飘帅讣续表狼耽远况榔诫宅蒂附担扫估菲有桩崭富沂毁烷停呢躁钢在承息独鹅醒锦愿陋禽衡假泼慧戚寥方悄采虏囱合隙溜春挫分级嘉杖淘我酒饯加罚善喷理欣账募能冠奥池氓抡顽茨耘淖畅峨痹形授煤蔽版朵丙仑咆拯班耸猎争干率扑咆阵瞥墓团覆菊聪谱咬努系辐姜鹤哄底礼兽扮络站

4、阜纺袖阴切匀秀梯仪庄聪标倒氧篇入吠佐望徽堂弟漱丙帜鹰侮峰菲乖狱轿原估涕郁瞪络厩串蛤毡刚鼻还土湾叔陛鸵武翰谩钥际筷哗剑卑涣稠笔闭灯武蹄素肯辱顺射仇愈草哭舔九龙暑恩已瀑踢瘁甜篮篓棠统浓眯矮榜郊渡殃乳浆段档涯赵股兰甩柑酣谅氖邱筋java程序员必学的十种程序算法算法1:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn)算法更快,因为它的内部循环(innerloop)可以在大部分

5、的架构上很有效率地被实现出来。快速排序使用分治法(Divideandconquer)策略来把一个串行(list)分为两个子串行(sub-lists)。算法步骤:1从数列中挑出一个元素,称为“基准”(pivot),2重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。3递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。递归的最底部情形,是数列的大小是零或

6、一,也就是永远都已经被排序好了。虽然一直递归下去,但是这个算法总会退出,因为在每次的迭代(iteration)中,它至少会把一个元素摆到它最后的位置去。算法2:堆排序算法堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序的平均时间复杂度为Ο(nlogn)。算法步骤:创建一个堆H[0..n-1]把堆首(最大值)和堆尾互换3.把堆的尺寸缩小1,并调用shift_down(0),目的是把新的数组顶端数据

7、调整到相应位置4.重复步骤2,直到堆的尺寸为1算法3:归并排序归并排序(Mergesort,台湾译作:合并排序)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(DivideandConquer)的一个非常典型的应用。算法步骤:1.申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列2.设定两个指针,最初位置分别为两个已经排序序列的起始位置3.比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置4.重复步骤3直到某一指针达到序列尾5.将另一序列剩下的所有元素直接复制到合并序列

8、尾算法4:二分查找算法二分查找算法是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。