黑马程序员技术交流社区

标题: 花了近21个小时的时间总算把各种排序算法弄懂了 [打印本页]

作者: as604049322    时间: 2014-12-11 16:49
标题: 花了近21个小时的时间总算把各种排序算法弄懂了
本帖最后由 as604049322 于 2015-1-3 19:56 编辑

花了近21个小时的时间总算把各种排序算法弄懂了,我差点成为脑残。
代码经过多次优化,阅读性绝对比百度出来好几倍




作者: as604049322    时间: 2014-12-11 16:56
本帖最后由 as604049322 于 2014-12-16 15:40 编辑

包括,归并排序、希尔排序、插入排序、快速排序。绝对的高效优化的代码,回帖查看哦!
下面是快速排序的优化:
  
  1. public static void quickSort(int[] arr,int start,int end){
  2.         if(end-start>1 || (end-start==1 && arr[start]>arr[end])){
  3.             int leftPos=start,rightPos=end,base=arr[start];
  4.             while(leftPos<rightPos){
  5.                 while(leftPos<rightPos && arr[rightPos]>=base)
  6.                     rightPos--;
  7.                 if(leftPos<rightPos)
  8.                     arr[leftPos++]=arr[rightPos];
  9.                 while(leftPos<rightPos && arr[leftPos]<base)
  10.                     leftPos++;
  11.                 if(leftPos<rightPos)
  12.                     arr[rightPos--]=arr[leftPos];
  13.             }
  14.             arr[leftPos]=base;
  15.             printArr(arr);
  16.             System.out.println("start:"+start+",end:"+end);
  17.             quickSort(arr,start,leftPos-1);
  18.             quickSort(arr,rightPos+1,end);
  19.         }
  20.     }
复制代码


作者: hengxing0079    时间: 2014-12-11 18:12
支持一下,正好对算法感兴趣!
作者: 红楼    时间: 2014-12-11 18:25
向大神学习
作者: 曹震国    时间: 2014-12-11 18:34
学习了,这种专研精神要好好学习。
作者: 牧歌    时间: 2014-12-11 18:35
太牛。。。。。。菜鸟看不懂。
作者: 侯鹏成    时间: 2014-12-11 18:37
说的这么好,必须要看看。楼主辛苦了
作者: xiaoxu    时间: 2014-12-11 20:21
学习下:lol
作者: jeromechen    时间: 2014-12-11 22:09
正研究这个呢,好东西
作者: 范中俊    时间: 2014-12-11 22:12
学习一下!!
作者: 官方    时间: 2014-12-11 22:15
...................................
作者: 没伞的孩子    时间: 2014-12-11 22:21
学习一下 这个比较厉害
作者: 陈宁    时间: 2014-12-11 22:29
哟,好东西!
3q
作者: Seejun    时间: 2014-12-11 22:36
过来看看。。。
作者: huoxy    时间: 2014-12-11 22:50
回复看帖
作者: linweiwen    时间: 2014-12-12 08:53
排序也是要好好掌握的,感谢楼主的分享
作者: rel4x    时间: 2014-12-12 09:18
学习学习哈
作者: 南柯一梦境    时间: 2014-12-12 09:22
楼主好流弊,向大神们致敬
作者: dhysh5512176    时间: 2014-12-12 09:52
赞,支持支持
作者: 骑着会飞的猪    时间: 2014-12-12 10:16
看看!!!!
作者: 孟子飞宏    时间: 2014-12-12 10:29
好东西,学习学习
作者: 孟子飞宏    时间: 2014-12-12 10:44
真详细,收藏了
作者: ppStudent    时间: 2014-12-12 10:50
大哥,你随便找一本数据结构的书,里面的排序算法你要多少有多少,至少15种,我学过之后好多都忘了,就记得最常见的几种了
作者: weiwei10153    时间: 2014-12-12 11:18
学习一下
作者: 双鱼座程序员    时间: 2014-12-12 11:57
好吧,回复支持。
作者: SpiderManZZH    时间: 2014-12-12 13:35
看看。。。。。。。。。
作者: 李贵栋    时间: 2014-12-12 14:11
有钻研就一定能成功  哈哈
作者: caoyang521    时间: 2014-12-12 14:20
这么神奇,看看先, 谢谢分享
作者: 李天富    时间: 2014-12-12 14:51
多谢分享
作者: cbb    时间: 2014-12-12 15:02
瞅瞅!~~~~
作者: 四夕    时间: 2014-12-12 17:08
……是么,我来学习学习,看看……
作者: 郝明明    时间: 2014-12-12 17:12
坚持就是胜利
作者: Carter    时间: 2014-12-12 19:36
看看先,数据结构和算法很重要
作者: qq8921310    时间: 2014-12-12 19:41
学习学习
作者: Cfan_yang    时间: 2014-12-12 21:03
谢谢分享。
作者: jamsjun    时间: 2014-12-12 21:30
单纯支持一下,菜鸟级别太伤脑细胞
作者: as604049322    时间: 2014-12-12 22:26
侯鹏成 发表于 2014-12-11 18:37
说的这么好,必须要看看。楼主辛苦了

感谢支持~
作者: as604049322    时间: 2014-12-12 22:29
ppStudent 发表于 2014-12-12 10:50
大哥,你随便找一本数据结构的书,里面的排序算法你要多少有多少,至少15种,我学过之后好多都忘了,就记得 ...

今天就因为你这话,我报了浙江大学数据结构的公开课。听了感觉还不错,不过我并不觉得你说的那些数上的代码比我的还要优化。
作者: nishi5151    时间: 2014-12-12 22:32
as604049322 发表于 2014-12-11 16:56
包括,归并排序、希尔排序、插入排序、快速排序。绝对的高效优化的代码,回帖查看哦! ...

支持一下
作者: 阿穆隆    时间: 2014-12-12 23:08
膜拜一下。
作者: xiaoxu    时间: 2014-12-12 23:15
冒泡排序就有很大的优化空间,最佳的情况时间复杂度可以优化到O(n),你的最佳和最差都是O(n^2)
作者: wei2666510    时间: 2014-12-12 23:30
感谢分享,看看··
作者: as604049322    时间: 2014-12-12 23:34
xiaoxu 发表于 2014-12-12 23:15
冒泡排序就有很大的优化空间,最佳的情况时间复杂度可以优化到O(n),你的最佳和最差都是O(n^2) ...

呵呵。冒泡排序被优化到O(n),那就不是冒泡排序了。
作者: zqbemail    时间: 2014-12-12 23:36
还没学习到,来围观,记录下来,后面用得上。
作者: nuddlesW    时间: 2014-12-13 00:43
倒是想看看

作者: liubin    时间: 2014-12-13 11:00
kanxiakanxia
作者: abc784990536    时间: 2014-12-13 11:22
有些还没完全看明白呢
作者: LOVE你的ME    时间: 2014-12-13 14:49
我算法那是相当的差
作者: ppStudent    时间: 2014-12-13 18:47
as604049322 发表于 2014-12-12 22:29
今天就因为你这话,我报了浙江大学数据结构的公开课。听了感觉还不错,不过我并不觉得你说的那些数上的代 ...

你要说这些算法都是你不看书不查资料自己想出来的,那你可以跨这个海口,不是就算了
作者: 姿_`态    时间: 2014-12-13 18:51
谢谢分享, 拿来看看
作者: 没劲睡觉    时间: 2014-12-13 19:20
来看看就   
作者: as604049322    时间: 2014-12-13 19:36
ppStudent 发表于 2014-12-13 18:47
你要说这些算法都是你不看书不查资料自己想出来的,那你可以跨这个海口,不是就算了 ...

{:3_47:}就是把别人的算法思想用最优的方式表现出来,怎么个夸海口了嘛???{:3_49:}
我是学刑侦的,对电脑本来完全是门外汉,为自己的成果得瑟一下,一下子被你打击了。。。
说实话,,,我除了数据恢复技术以外没看过其他的专业电脑书,这些算法的思想是查的百度百科
作者: oyx    时间: 2014-12-13 19:43
感觉有夸张嫌疑,不过还是好奇来看看
作者: AnElse    时间: 2014-12-13 20:11
必须点赞
作者: zcyemenye    时间: 2014-12-13 21:51
{:3_51:}{:3_51:}
作者: ppStudent    时间: 2014-12-14 09:22
as604049322 发表于 2014-12-13 19:36
就是把别人的算法思想用最优的方式表现出来,怎么个夸海口了嘛???
我是学刑侦的,对电 ...

好嘛,你牛B,行了么,不过是不想让楼主的小尾巴翘起来,非要我夸奖你,:lol
作者: 无极限    时间: 2014-12-14 09:27
参考下,多谢分享
作者: GYSWL    时间: 2014-12-14 10:25
先下载看看,给力再回你
作者: 钟伟    时间: 2014-12-14 10:52
前来学习一下
作者: Honelyboy    时间: 2014-12-14 10:54
学习一下
作者: 精英通    时间: 2014-12-14 11:23
谢谢大神的优化,学习学习之
作者: xiaoxiyang    时间: 2014-12-14 11:28
前来学习,致敬。
作者: 我只是一只菜鸟    时间: 2014-12-14 11:49
感觉好厉害
作者: Eagle    时间: 2014-12-14 11:54
楼主给力啊。顶。
作者: 艾维苏    时间: 2014-12-14 12:57
查看一下
作者: as604049322    时间: 2014-12-14 13:32
ppStudent 发表于 2014-12-14 09:22
好嘛,你牛B,行了么,不过是不想让楼主的小尾巴翘起来,非要我夸奖你, ...

额,还是别夸了。。谢谢你的提醒。。。既不能自卑也不能骄傲呀~
作者: 记忆深处里    时间: 2014-12-14 13:43
学习一下 .......
作者: 聪明叉    时间: 2014-12-14 14:27
看看是什么
作者: kane    时间: 2014-12-14 14:33
学习一下,谢谢楼主分享
作者: 15579171087    时间: 2014-12-14 15:02
看看~~~~~~~~~~~~~~~~
作者: 赤魂者    时间: 2014-12-14 17:28
学习下,大神的智慧
作者: 芭芭拉2    时间: 2014-12-14 20:05
路过看看。。
作者: 芭芭拉2    时间: 2014-12-14 20:07
感谢分享,学习学习。,。。
作者: 陈琪    时间: 2014-12-14 20:25
好帖 顶一下
作者: a5584820    时间: 2014-12-14 22:48
早日进黑马
作者: hjg8858    时间: 2014-12-14 22:55
这么好》》》》
作者: bluebloodant    时间: 2014-12-15 01:02
记得你最近都不怎么上论坛了没想到现在你这么多技术分了,怎么得的、、
作者: Smart_lll    时间: 2014-12-15 06:06
学习 学习 看看
作者: as604049322    时间: 2014-12-15 07:54
bluebloodant 发表于 2014-12-15 01:02
记得你最近都不怎么上论坛了没想到现在你这么多技术分了,怎么得的、、

???你是???
作者: call    时间: 2014-12-15 09:58
这么流弊?来看看看看看看。。。。。。。。。。:lol
作者: woaixuexi    时间: 2014-12-15 10:24
看看,谢谢你的分享
作者: cczheng    时间: 2014-12-15 10:26
这么给力
作者: 卖艺人    时间: 2014-12-15 14:52
支持支持
作者: taany    时间: 2014-12-15 16:33
牛人啊,菜鸟一个,不懂。向大神学习。
作者: 冥夜    时间: 2014-12-15 16:37
看看。。。。。。。
作者: 李振乐    时间: 2014-12-15 16:38
必须看一下。。。。
作者: evar71    时间: 2014-12-15 18:46
:)排序算法弄懂了
作者: yl82846094    时间: 2014-12-15 19:21
学习一下下
作者: bluebloodant    时间: 2014-12-15 21:44
as604049322 发表于 2014-12-15 07:54
???你是???

啊 以前你回过我一个帖子感觉你挺爱显的 就对你有点印象
作者: xby1993    时间: 2014-12-16 15:00
学习一下
作者: 迷失的小Z    时间: 2014-12-16 15:11
看看……
作者: 迷失的小Z    时间: 2014-12-16 15:21
有时间把不会的算法看看……
作者: 曛丨黯淡浮华    时间: 2014-12-16 15:39
看看写的怎样,
作者: as604049322    时间: 2014-12-16 15:49
bluebloodant 发表于 2014-12-15 21:44
啊 以前你回过我一个帖子感觉你挺爱显的 就对你有点印象

呵呵,高手都是深藏不漏的。。。菜鸟喜欢找成就感,找信心。。。找了你的帖子,原来是死锁,,,。。唉,我2倍速看完一遍视频后,现在忘干净,第二遍还在看面向对象~不知道你学的怎么样了
作者: 淡淡的雨    时间: 2014-12-16 16:32
前段时间搞了一遍,又给忘了
作者: bluebloodant    时间: 2014-12-16 16:47
as604049322 发表于 2014-12-16 15:49
呵呵,高手都是深藏不漏的。。。菜鸟喜欢找成就感,找信心。。。找了你的帖子,原来是死锁,,,。。唉, ...

嗯 都是这样的 新手当然喜欢找点成就感了哈哈:lol 我也是 看的时候总是快进 然后看的太快看的时候感觉都会了一用的时候就感觉好多细节都没注意到 总要回去看 我之前看完GUI就停下来了 回去找重点重新看记笔记,然后再自己写写代码实际运用一下省着老忘。。
作者: 王世虎    时间: 2014-12-16 18:49
强烈围观
作者: 与梦逆风而行    时间: 2014-12-16 20:32
拿来看看   多谢楼主总结  
作者: cz萑    时间: 2014-12-16 21:23
支持一下
作者: 陈强fly    时间: 2014-12-16 21:43
东西真的好多,一道题可以有好多中实现方法,只有去比较才能找出最优的解决方案。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2