var arr = [10,8,6,9,1,7,1,13,5,1,9];
//冒泡排序function bubbleSort(tmpArr){for(var i = tmpArr.length-1; i > 0; i--){for(var j=0; j<i; j++){if(tmpArr[j] > tmpArr[j+1]){swap(j,j+1);}}}
}function swap(a,b){var tmp = arr[a];arr[a] = arr[b];arr[b] = tmp;
}bubbleSort(arr);
console.log(arr); 原文:https://www.cnblogs.com/ooo888ooo/p/11402559.html
JavaScript基础之数组的重排序 数组(Array)算是继Object之后我们最常用到的类型了。与其他语言不同的是,javascript数组的每一项可以保存任何类型的数据,并且数组的大小是可以动态调整的。 JavaScript已经为我们提供了两个数组重排序的方法,reverse()和sort() 方法。 其中reverse()方法会反转数组项的顺序。举个栗子:var values = [18,4,56,1,"a","b","abc"];
values.reverse();
alert(values); // abc,b,a,1,56,4,18...
JavaScript常见排序以下两个函数是排序中会用到的通用函数,就不一一写了function checkArray(array) {if (!array || array.length <= 2) return
}
function swap(array, left, right) {let rightValue = array[right]array[right] = array[left]array[left] = rightValue
}View Code冒泡排序冒泡排序的原理如下,从第一个元素开始,把当前元素和下一个索引元素进行比较。如果当前元素大,那么就交换位置,重复操作直到比较到最后一...
冒泡排序:车轮战,两辆比较,小的靠前特点:1.轮数:共比较length-1轮2.每次比较的次数:①第一次比较length-1次,确定出最大的数②第二次比较length-2次,确定出倒数第二大的数...代码:双层循环表示整个排序的过程1.外层循环:控制比较的轮数,从1,开始,到length-1(能取到)结束2.内层循环:控制每轮中比较的次数,同时也要表示参与比较的元素的下标,从0开始,到length-1-i(轮数变量)结束原文:https://www.cnblogs.com/10...
快速排序是一种在大多数情况下比冒泡排序效率更高(详情参考有关算法复杂度的文章)的算法。注意:许多编程语言内置的排序 API 底层实现便是基于快速排序。ES5 与 ES6 语法在实现该算法时区别不大,以下仅提供 ES5 版本。function quickSort(arr) {var len = arr.length;if (len <= 1) {return arr.slice(0); // 注意用 slice 可防范 arr[0] 为 undefined }var left = [], right = [], mid = [];mid.push(arr[0]);for (var i = 1; ...
引言 排序算法是数据结构和算法之中的基本功,无论是在笔试还是面试,还是实际运用中都有着很基础的地位。这不正直七月,每年校招的备战期,所以想把常见的排序算法记录下来。在本篇文章中的排序算法使用 JavaScript 实现。 一、 冒泡排序 冒泡排序是排序算法中最简单的一个算法,其优点是易理解,易实现。在一些对性能要求不高且数据量不大的需求中,冒泡排序是一个很好的选择。 原理:假设排序顺序为增序,数组长度为 N...
首先要介绍一下冒泡排序,冒泡排序的过程很简单,首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则将两个关键字交换,然后比较第二个和第三个,直到最后一个比较完成。这是第一趟冒泡,其结果使得关键字最大的记录被安置到最后一个位置上了。然后对序列前n-1个元素进行第二次冒泡,将倒数第二个选出。以此类推直到所有被选出,冒泡结束。 通过分析可以得出,冒泡排序的时间复杂度为O(n2)。 ...
// 寄生构造方式实现继承var MyArray=function(){var arr=new Array();// 添加值arr.push.apply(arr,arguments);//和下面的循环一个效果// for (var i = 0; i < arguments.length; i++) {// arr.push(arguments[i]);// }// ===========================插入排序=====================================arr.insertSort=function(){var position,current;//当前待排序的元素for (var i = 1; i < arr.length; i++) {if (arr[i]<arr[i...
//比较字符基类大小 相同返回0,str1>str2 返回1,str1<str2 返回-1,function str_compare(str1,str2){let index=0;let dis=0;while (dis===0&&index<str1.length){if(str1.charCodeAt(index)>str2.charCodeAt(index)){dis=1}elseif(str1.charCodeAt(index)<str2.charCodeAt(index)){dis=-1}else{index++;if(index>str2.length){dis=1;}}}if(dis===0&&index<str2.length){dis=-1}return dis;
}
//用二分法查找最近的字符位置funct...
直接上代码: 1var arr=[2 {name:"张散步",age:"23",sports:"篮球",number:"231123"},3 {name:"李斯的",age:"3",sports:"钢琴",number:"534563"},4 {name:"艾伦",age:"63",sports:"排球",number:"345455"},5 {name:"王武",age:"33",sports:"乒乓球",number:"867324"},6 {name:"乏力",age:"26",sports:"足球",number:"132457"}7 ];8 9//单一的数字排序10//cons...
如果有一个对象数组,我们想要依据某个对象属性对数组进行排序。而传递给数组sort()方法的比較函数要接收两个參数,即要比較的值。但是。我们须要一种方式来指明依照哪个属性来排序。要解决问题,能够定义一个函数,它接收一个属性名,然后依据这个属性名来创建一个比較函数,以下就是这个函数的定义。function createComparionFun(propertyName)
{return function(object1,object2){var value1=object1[propertyName];var value...
一、快速排序法概念 我们将一个杂乱无章的数组进行一个快速排序,可以先从一个数组中取一个中间值,将一个数组一分为2,左边的数组跟中间值进行比较,小的放在左边,大的放在右边。比较完毕后再次取中间值,再次比较一次类推 二、思路 1、取的中间值,以及中间值的下标 2、创建一个left空数组,存放小于中间值的数据 3、创建一个right空数组,存放大于中间值的数据 4、递归的终止条件,如果数组的长度等于1的时...
假设有一个对象数组,我们想要根据某个对象属性对数组进行排序,而传递给数组sort()方法的比较函数要接收两个参数,即要比较的值。可是,我们需要一种方式来指明按照哪个属性来排序。要解决这个问题,可以定义一个函数,它接收一个属性名,然后根据这个属性名来创建一个比较函数,下面就是这个函数的定义。function createComparionFun(propertyName)
{return function(object1,object2){var value1=object1[propertyName];var v...
笔试面试经常涉及各种算法,本文简要介绍常用的一些算法,并用JavaScript实现。1、插入排序 1)算法简介 插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元...
JavaScript版排序算法:冒泡排序、快速排序、插入排序、希尔排序(小数据时,希尔排序会比快排快哦) 1//排序算法 2 window.onload = function(){3var array = [0,1,2,44,4,4 324,5,65,6,6,5 34,4,5,6,2,6 43,5,6,62,43,7 5,1,4,51,56,8 76,7,7,2,1,9 45,4,6,7,8];10//var array = [4,2,5,1,0,3]; 11 array = sorting.she...