• 【总结】JS里的数组排序


    虽然贴了2种办法,但是思路是一致的,都是先从数组里找出最小值,一种是找到一个放进新数组; 
    另一种是找到后和第i个数交换,i每次自增

    主要用到2个函数:

    1. 从一个数组里找出最小值;
    2. 两个元素互换位置
    function findMin(arr,start){//第二个参数是标明从第几位开始找
    var n = arr[start];
    var index =0;
    for(var i=start; i<arr.length; i++){
    if(arr[i]<=n){
    n = arr[i];
    index = i;
    }
    }
    return index;
    }
    function findMin2(arr){//这个默认从第0位开始找
    var n = arr[0];
    var index =0;
    for(var i=0; i<arr.length; i++){
    if(arr[i]<=n){
    n = arr[i];
    index = i;
    }
    }
    return index;
    }
    var arr =[3,5,1,8,39,4];
    //alert(findMin(arr,3));
    //方法一,先找最小值,跟第一个换位置,再找第二小,和第二位对换位置,一次类推
    function mySort2(arr){
    var mid =0;
    for(var i=0; i<arr.length; i++){
    mid = arr[i];
    arr[i]= arr[findMin(arr,i)];
    arr[findMin(arr,i)]= mid;
    }
    return arr;
    }
    //alert(mySort2(arr));
    //方法二:定义一个新数组,每次循环的时候找到最小值,把这个最小值push到新数组里,再把这个数从原数组中删除。
    function mySort3(arr){
    var newArr =[];
    for(var i=0; i<arr.length; i++){
    newArr.push(arr[findMin2(arr)]);//这个findMin2是不用传第二个参数的
    arr.splice(findMin2(arr),1);
    i--;
    }
    return newArr;
    }
    alert(mySort3(arr));

  • 相关阅读:
    Python读写ini文件
    MySQL 让主键id 从1开始自增
    python 找字符串中所有包含字符的下标
    centos7防火墙命令
    如何将npm升级到最新版本
    将 Npm 的源替换成淘宝的源
    MySQL 时间格式化/ MySQL DATE_FORMAT
    Python中crypto模块进行AES加密和解密
    windows环境下python3安装Crypto
    Nginx+PHPSTORM+Xdebug 配置
  • 原文地址:https://www.cnblogs.com/bluefantasy728/p/5665553.html
Copyright © 2020-2023  润新知