鱼C论坛

 找回密码
 立即注册
查看: 3539|回复: 28

[每日一练] 算法20 ◉‿◉ 选择排序

[复制链接]
发表于 2017-5-24 21:38:29 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 不二如是 于 2017-5-24 21:45 编辑


                               
登录/注册后可看大图


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

不许看答案,否则打屁屁




220245sqxsiglujuqqgfqi.gif

程序分析:
  选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。       


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

Snip20170524_154.png






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

使用道具 举报

发表于 2017-10-31 17:07:17 | 显示全部楼层
想学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-28 20:34:14 From FishC Mobile | 显示全部楼层
喵~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-8 22:08:29 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-3 20:16:44 | 显示全部楼层
here
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-4 10:47:10 | 显示全部楼层
膜拜大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-4 16:42:31 | 显示全部楼层
  1. window.onload = function(){
  2.                                 var arr = [33,35,65,18,34,64,22,15,2,99,21,230];
  3.                                
  4.                                
  5.                                 document.write('原来数组排序是:'+arr.join(',')+'<br/>');
  6.                                 for(var i = 0; i < arr.length; i++){
  7.                                         for(var j = i; j <arr.length; j++){
  8.                                                 if(arr[i] > arr[j]){
  9.                                                         arr[i] ^= arr[j];
  10.                                                         arr[j] ^= arr[i];
  11.                                                         arr[i] ^= arr[j];
  12.                                                 }
  13.                                         }
  14.                                        
  15.                                         document.write('第'+(i+1)+'次的排序结果是:'+arr.join(',')+'<br/>');
  16.                                 }
  17.                                
  18.                                 //alert(arr);
  19.                         };
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-9 06:30:16 From FishC Mobile | 显示全部楼层
谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-21 19:54:04 | 显示全部楼层
路漫漫啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-5 21:09:55 | 显示全部楼层
1111
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-11 20:48:53 | 显示全部楼层
kankan
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2018-9-25 16:46:47 | 显示全部楼层
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.         <title>20</title>
  5.         <meta charset="utf-8">
  6.         <script type="text/javascript">       
  7.         var listw=new Array(2,3,5,1,6,7,4,9,39,50,22,15,24,14);
  8.         var lista=new Array();
  9.         var lista=paix(listw,lista);
  10.         document.write("最好排序后的列表:"+lista);
  11.         function paix(list1,olist){
  12.                 var temp=0;
  13.                 var len=list1.length;
  14.                 if(len>1){
  15.                         for(var i=0;i<list1.length-1;i++){
  16.                                 if(list1[i]<list1[i+1]){
  17.                                         temp=list1[i];
  18.                                         list1[i]=list1[i+1];
  19.                                         list1[i+1]=temp;
  20.                                 }
  21.                         }               
  22.                         olist.push(list1[len-1]);
  23.                         var pageone=list1.slice(0,-1);
  24.                         paix(pageone,olist);       
  25.                 }
  26.                 else{olist.push(list1[0]);}
  27.                 return olist;
  28.         }
  29.         </script>
  30. </head>
  31. <body>

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

使用道具 举报

发表于 2018-10-10 16:13:38 | 显示全部楼层
  1. var shift = [7895,56,445,65,64,94,564,54,5,46,1];
  2. var max_vals = [];
  3. var max_fun = function(array1){
  4.         var n = array1.length;                                        //存长度值,因为后面for要删原数组的值
  5.         for(var i=0;i<n;i++){
  6.                 var max_val = Math.max.apply('',array1);        //获取数组最大值
  7.                 max_vals.unshift(max_val);                        //在开头加入最大值
  8.                 var index = shift.indexOf(max_val);
  9.                 shift.splice(index,1);                                //删除原数组中的最大值继续比较
  10.         }
  11.         console.log(max_vals);
  12. }
  13. max_fun(shift);
复制代码


这个耗时看看版主大大的写法,按照fun执行前后插getDate的方法代码量实在有点多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-10 16:16:23 | 显示全部楼层
好吧,这个耗时是我知识储备少了,竟然还想着那种方法.....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2018-11-28 22:21:36 | 显示全部楼层
就看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-12-3 08:27:25 From FishC Mobile | 显示全部楼层
谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-12-3 18:11:35 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-1-9 10:29:10 | 显示全部楼层
  1.         function fF(squence) {
  2.                 var i;
  3.                 var j;
  4.                 var Max;
  5.                 var len = squence.length;
  6.                

  7.                 for (j = 1; j < len; j ++) {
  8.                         for (i = 0; i < len - j; i ++) {
  9.                                 if (squence[i] > squence[i + 1]) {
  10.                                         Max = squence[i];
  11.                                         squence[i] = squence[i + 1];
  12.                                         squence[i + 1] = Max;
  13.                                        
  14.                                 }
  15.                         }
  16.                         // console.log(squence);
  17.                 }
  18.                 console.log(squence);       
  19.         }
  20.         fF([41117,444,138,50,115,46,27,26,19,1,2,45,36,3]);
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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