鱼C论坛

 找回密码
 立即注册
查看: 2909|回复: 33

[每日一练] 算法24 ◉‿◉ 快速排序

[复制链接]
发表于 2017-5-28 06:15:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2017-5-28 07:07 编辑


                               
登录/注册后可看大图


按照提示,完成代码,秀秀你的编程能力!

不许看答案,否则打屁屁





163528obpy59r5wz2s53z2.gif


程序分析:
        快速排序(Quick Sort)的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
        快速排序使用分治法来把一个串(list)分为两个子串(sub-lists)。具体算法如下:
<1>.从数列中挑出一个元素,称为 “基准”(pivot);
<2>.重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作;
<3>.递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。
       


源代码:
游客,如果您要查看本帖隐藏内容请回复

Snip20170528_173.png






如果喜欢,请订阅
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-11-7 21:47:55 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-16 23:45:55 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-17 14:41:45 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-21 18:30:48 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-24 16:10:07 | 显示全部楼层
em
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-26 02:24:12 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-28 20:54:53 | 显示全部楼层
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.         <title>24</title>
  5.         <meta charset="utf-8">
  6.         <script type="text/javascript">
  7.         window.onload=function(){
  8.                 // var list1=new Array(456,789,1,7,9,3333,888,3,12,8);
  9.                 var list1=new Array();
  10.                 for(var j=0;j<10000;j++){
  11.                         list1[j]=Math.floor(Math.random()*(10000-1)+1);
  12.                 }
  13.                 var s=new Date();
  14.                 document.write(kspx(list1));
  15.                 var e=new Date();
  16.                 console.log(e-s);
  17.         }

  18.         function kspx(list){
  19.                 if(list.length<=1){
  20.                         return list;
  21.                 }
  22.                 var jidindex=Math.floor(list.length/2);
  23.                 var jid=list.splice(jidindex,1)[0];
  24.                 var left=[];
  25.                 var right=[];
  26.                 for(var i=0;i<list.length;i++){
  27.                         if(list[i]<jid){
  28.                                 left.push(list[i]);
  29.                         }else{
  30.                                 right.push(list[i]);
  31.                         }
  32.                 }
  33.                 return kspx(left).concat([jid],kspx(right));
  34.         }
  35.         </script>
  36. </head>
  37. <body>

  38. </body>
  39. </html>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-11 23:01:52 | 显示全部楼层
666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-1-4 18:13:36 | 显示全部楼层
快快快
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-15 22:22:17 | 显示全部楼层
kk
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-1 13:16:42 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-8 20:58:30 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-22 19:32:40 | 显示全部楼层
.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-5-21 17:11:34 | 显示全部楼层
回复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-5-27 12:41:43 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-29 22:58:07 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-3 11:29:30 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-1 16:16:09 | 显示全部楼层
看看跟我想的是不是一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-11 14:55:05 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 01:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表