zoukankan      html  css  js  c++  java
  • 模拟javascript中的sort排序

    一、javascript中sort对数据进行排序的原理

    sort() 方法对数组的元素做原地的排序,并返回这个数组。 sort 可能不是稳定的。默认按照字符串的Unicode码位点排序;

    语法:arr.sort([compareFunction])

    参数 compareFunction
    可选。用来指定按某种顺序进行排列的函数。如果省略,元素按照转换为的字符串的诸个字符的Unicode位点进行排序。
    如果 compareFunction(a, b) 小于 0 ,那么 a 会被排列到 b 之前;
    如果 compareFunction(a, b) 等于 0 , a 和 b 的相对位置不变。备注: ECMAScript 标准并不保证这一行为,而且也不是所有浏览器都会遵守
    如果 compareFunction(a, b) 大于 0 , b 会被排列到 a 之前。
    1   //将数组中的元素按照从小大的顺序排列
    2  var arr=[11,55,22,45,16,87];
    3 
    4     arr.sort(function(a,b){
    5         return a-b;
    6     });
    7     console.log(arr);

    二、模拟javascript内部对数据进行排序的原理

     1 sortSelf(arr,function(a,b){
     2         return a-b;
     3     });
     4     console.log(arr);
     5 
     6  function sortSelf(array,fn){
     7         for (var i = 0; i < array.length-1; i++) {
     8             var isSorted=true;  //默认已经排好序
     9             for (var j = 0; j < array.length-1-i; j++) {
    10                 //调用函数
    11                 if(fn(array[j],array[j+1])>0){
    12                     //交换两个变量
    13                     var temp=array[j];
    14                     array[j]=array[j+1];
    15                     array[j+1]=temp;
    16                     isSorted=false;
    17                 }
    18             }
    19             if(isSorted){
    20                 break;
    21             }
    22         }
    23     }
  • 相关阅读:
    机器学习分类
    12.python中高阶函数以及内建函数(map,filter,sorted),和闭包
    python中的异常处理相关语句和迭代器
    和好朋友渐行渐远是什么感觉?
    MDX学习笔记(整理) MDX语法
    Cognos软件介绍文档(原创)
    隐藏
    android::Mutex::Autolock的使用
    Android中sp和wp的使用
    Day 07 字符编码,文件操作
  • 原文地址:https://www.cnblogs.com/lijinblogs/p/5582583.html
Copyright © 2011-2022 走看看