js排序算法
2020-12-13 16:10
标签:https 扫描 tostring 原理 描述 title length 选择排序 快速排序 利用js来实现一些常见的排序算法,在面试中问得还是挺多的,下面我就其进行了简单的总结。 首先要讲讲JS数组排序的sort方法,它实现的原理是通过两两比较的方法,sort()方法按升序排列数组项,即最小的值位于最前面,最大的值位于最后面,为了实现排序,sort()方法会调用每个数组项的toString()方法,然后比较得到的字符串,即使数组中的每一项都是数值,sort方法比较的也是字符串。因此有必要定义一个比较函数: 这个比较函数可以适用于大多数数据类型,只要将这个比较函数作为参数传递给sort()方法即可。 这是升序,当然也可以通过比较函数产生降序排序的效果。 交换返回值即可。 这是降序排序。 之所以叫冒泡排序,是因为使用这种排序算法排序时,数据值会像气泡一样从数组的一端漂移到另一端。比较相邻的值,当左侧值大于右侧值时将它们进行互换。 定义一个交换函数 冒泡排序的代码 选择排序从数组的开头开始,将第一个元素和其他元素进行比较。检查完所有元素后,最小的元素会被放到数组的第一个位置,然后算法会从第二个位置继续。这个过程一直进行,当进行到数组的倒数第二个位置时,所有的数据便完成了排序。 具体算法描述如下: 原文:大专栏 js排序算法 js排序算法 标签:https 扫描 tostring 原理 描述 title length 选择排序 快速排序 原文地址:https://www.cnblogs.com/wangziqiang123/p/11618257.htmlsort()方法
function compare(value1,value2){
if(value1
var values=[0,1,5,10,15];
values.sort(compare);
alert(values);//0,1,5,10,15
function compare(value1,value2){
if(value1
如果仅仅是要比较数值类型,可以使用更简单的比较函数。function compare(value1,value2){
return value2-value1;
}
冒泡排序
function swap(arr,index1,index2){
var temp=arr[index1];
arr[index1]=arr[index2];
arr[index2]=temp;
}
function bubblesort(){
for(var i=0;i
选择排序
function selectionSort(){
var min,temp;
for(var i=0;i
插入排序
⒈ 从第一个元素开始,该元素可以认为已经被排序
⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描
⒊ 如果该元素(已排序)大于新元素,将该元素移到下一位置
⒋ 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
⒌ 将新元素插入到下一位置中
⒍ 重复步骤2~5function selectionSort(){
var temp;
for(var i=0;i0&&arr[j-1]>=temp){
arr[j]=arr[j-1];
--j
}
arr[j]=temp;
}
}
快速排序
function quickSort(arr){
if(arr.length