js中sort()方法冒泡排序模拟

1.sort()方法概述

  sort() 方法用于对数组的元素进行排序。

  如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,

  首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

  如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。

  比较函数应该具有两个参数 a 和 b,其返回值如下:

   若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

   若 a 等于 b,则返回 0。

   若 a 大于 b,则返回一个大于 0 的值。

 1 Array.prototype.bubbleSort = function(fun){
 2     for(var i = 0; i < this.length - 1; i++){//趟数
 3         var flag = true;
 4         for(var j = 0; j < this.length - i - 1 ; j++){//每趟比较之后会得出一个最大值沉底
 5             if(typeof fun == "function"){
 6                 if(fun(this[j], this[j+1])>0){
 7                     //交换
 8                     flag = false;
 9                     var temp;
10                     temp = this[j];
11                     this[j] = this[j+1];
12                     this[j+1] = temp;
13                 }
14             }else{
15                 if(this[j] > this[j+1]){
16                     //交换
17                     flag = false;
18                     var temp;
19                     temp = this[j];
20                     this[j] = this[j+1];
21                     this[j+1] = temp;
22                 }
23             }
24         }
25         if(flag == true){
26             break;
27         }
28     }
29     return this;
30 }
31 var arr3 = arr.bubbleSort(function(a,b){
32     return b-a;
33 });
34 console.log(arr3);
时间: 2024-10-14 02:20:13

js中sort()方法冒泡排序模拟的相关文章

JS中sort()方法原理及使用

sort()  方法用于对数组的元素进行排序,并返回数组.默认排序顺序是根据字符串UniCode码.因为排序是按照字符串UniCode码的顺序进行排序的,所以首先应该把数组元素都转化成字符串(如有必要),以便进行比较. 语法:arrayObject.sort(sortby); 参数sortby  可选,用来规定排序的顺序,但必须是函数. 例一:按照字母顺序排序 例二:还是按照字母进行排序 纳尼,这次排序似乎没有得到想要的结果...... 如果要得到自己想要的结果,不管是升序还是降序,就需要提供比

Js中sort(sortfun)方法

1 <meta charset="utf-8" /> 2 3 <script language="javascript"> 4 5 /** 6 * @date 2014-10-23 11:17:04 7 * @via http://www.jb51.net/article/4168.htm 8 * @topic Js中sort(sortfun)方法 9 * @return 一个元素已经进行了排序的 Array 对象. 10 * @sortfu

【转载】JS中bind方法与函数柯里化

原生bind方法 不同于jQuery中的bind方法只是简单的绑定事件函数,原生js中bind()方法略复杂,该方法上在ES5中被引入,大概就是IE9+等现代浏览器都支持了(有关ES5各项特性的支持情况戳这里ECMAScript 5 compatibility table),权威指南上提到在ES3中利用apply模拟该方法的实现(JS权威指南中函数那章), 但无法真实还原该方法, 这也是真bind方法中的有趣特性. (原文这边理解有问题, 这段话的意思如果结合犀牛书上下文的意思, 再结合犀牛书中

JS中sort()函数

Js中用方法sort()为数组排序.sort()方法有一个可选参数,是用来确定元素顺 //升序 arr.sort(function(a,b){ retun a-b; }); //降序 arr.sort(function(a,b){ retun b-a; }); 以上方法可以实现对数组按数值大小排序JS中sort()函数问题 原文地址:https://www.cnblogs.com/yhliu/p/11055522.html

Collections中sort()方法源代码的简单分析

Collections的sort方法代码: public static <T> void sort(List<T> list, Comparator<? super T> c) { Object[] a = list.toArray(); Arrays.sort(a, (Comparator)c); ListIterator i = list.listIterator(); for (int j=0; j<a.length; j++) { i.next(); i.

js中Date 方法

Date (对象) Date 对象能够使你获得相对于国际标准时间(格林威治标准时间,现在被称为 UTC-Universal Coordinated Time)或者是 Flash 播放器正运行的操作系统的时间和日期.要使用Date对象的方法,你就必须先创建一个Date对象的实体(Instance). Date 对象必须使用 Flash 5 或以后版本的播放器. Date 对象的方法并不是静态的,但是在使用时却可以应用于所指定的单独实体. Date 对象的方法简介: ·getDate | 根据本地时

关于JS中的方法是否加括号的问题

js中的方法什么时候加括号什么时候不加括号呢,我们有时候经常就搞不清楚,记住下面这几点就好理解了. 1.函数做参数时都不要加括号. function fun(a){ alert(a); } function getE(fun,e){ fun(e); } getE(fun,3);//弹出3,这里把函数fun当成实参传入,所以就不用加括号了. 2.函数调用的时候是要加括号的,上面这个例子中getE这个函数调用的时候,不管有没有参数,都是要加括号的. 3.函数作为赋值符号右边的时候,无括号表示的是传递

【Java】Collections中sort方法Comparator的重写

很多人只会用Collections中不带比较器Comparator的sort方法完成一些对存储整形Integer的动态数组ArrayList的简单排序,包括我之前,此前仅仅在<[Java]Java中的Collections类--Java中升级版的数据结构>(点击打开链接)介绍Collections中sort方法的简单用法. igz 面对eclipse所给出的说明,根本就不知道这个sort方法如何重写,如果我对一个存储Student类的动态数组进行以学生的学号为根据,姓名为根据进行排序,那该如何

js 数组中sort方法存在的问题

chrome中测试sort方法 发现排序失效,查过资料发现,js数组的sort方法总会以第一个字符的ASCII值来进行比较排序 解决办法一:给sort方法指定一个比较函数作为参数,如下图 解决办法二:自己一个排序算法,自己造轮子 原文地址:https://www.cnblogs.com/xingguozhiming/p/8996700.html