JS三种简单排序算法
冒泡排序:最简单、最慢、长度小于7的时候最优
插入排序:比冒泡要快比快速排序和希尔排序慢,数据量小的时候优势大
快速排序:速度很快
//js利用systemSort进行排序
systemSort: function(array){
return array.sort(function(a,b){
return a-b;
});
}
//冒泡排序
bubbleSort: function(array){
var i = 0,
len = array.length,
j,d;
for(;i<len;i++){
for(j=0;j<len;j++){
if(arrar[i]<array[j]){
d=array[j];
array[j]=array[i];
array[i]=d;
}
}
}
return array;
}
//快速排序
var quickSort = function(arr){
if(arr.lenght <= 1){return arr; }
var privotIndex = Math.floor(arr.lenght/2);
var pivot = arr.splice(privoIndex,1)[0];
var left = [];
var right = [];
for(var i = 0;i<arr.lenght;i++){
if(arr[i]<pivot){
left.push(arr[i]);
}else{
right.push(arr[i]);
}
}
return quickSort(left).concat([pivot],quickSort(right));
}
//插入排序
function insertSort(arr){
for(var i =1,j;i<arr.lenght;i++){
j=i;
v=arr[j];
while(arr[j-1]>v){
arr[j] = arr[j-1];
j--;
if(j == 0){
break;
}
}
arr[j]=v;
}
return arr;
}
JS三种简单排序算法的更多相关文章
- 三种简单排序算法(java实现)
一.冒泡排序 算法思想:遍历待排序的数组,每次遍历比较相邻的两个元素,如果他们的排列顺序错误就交换他们的位置,经过一趟排序后,最大的元素会浮置数组的末端.重复操 作 ...
- c语言实现基本的数据结构(二) 链表(包括链表的三种简单排序算法)
#include "stdafx.h" #include <stdlib.h> //创建一个节点,data为value,指向NULL Node* Create(int ...
- js的几种简单排序算法及其效率实测
function swap(arr,index1,index2){ var t = arr[index1]; arr[index1] = arr[index2]; arr[index2] = t; } ...
- [DS+Algo] 005 三种简单排序及其代码实现
目录 1. 冒泡排序 BubbleSort 1.1 算法描述 1.2 性能分析 1.3 Python 代码实现 2. 选择排序 SelectionSort 2.1 算法描述 2.2 选择排序的主要优点 ...
- js三种经典排序:冒泡排序、插入排序、快速排序
冒泡排序: function bubbleSort(arr){ for(var r=1;r<arr.length-1;r++){ for(var i=0;i<arr.length-r;i+ ...
- JavaScript版几种常见排序算法
今天发现一篇文章讲“JavaScript版几种常见排序算法”,看着不错,推荐一下原文:http://www.w3cfuns.com/blog-5456021-5404137.html 算法描述: * ...
- 七种经典排序算法及Java实现
排序算法稳定性表示两个值相同的元素在排序前后是否有位置变化.如果前后位置变化,则排序算法是不稳定的,否则是稳定的.稳定性的定义符合常理,两个值相同的元素无需再次交换位置,交换位置是做了一次无用功. 下 ...
- 简单排序算法设计(Java)
总共有八种排序算法,还是慢慢看吧 1.简单排序算法 简单排序算法就是设置标兵,逐个比较数,然后查找插入位置,插入 public static void p(int[] a){ for(int i=0; ...
- PHP四种基本排序算法
PHP的四种基本排序算法为:冒泡排序.插入排序.选择排序和快速排序. 下面是我整理出来的算法代码: 1. 冒泡排序: 思路:对数组进行多轮冒泡,每一轮对数组中的元素两两比较,调整位置,冒出一个最大的数 ...
随机推荐
- PCL点云曲面重建(1)
在测量较小的数据时会产生一些误差,这些误差所造成的不规则数据如果直接拿来曲面重建的话,会使得重建的曲面不光滑或者有漏洞,可以采用对数据重采样来解决这样问题,通过对周围的数据点进行高阶多项式插值来重建表 ...
- C/C++中near和far的区别
C/C++中near和far的区别 关键字near和far受目标计算机体系结构的影响.目前编程中使用不多. near关键字创建一个指向可寻址内存低端部分的目标指针.这些指针占用内存的单一字节,并且他们 ...
- Claims-Based Authentication and Authorization
Introduction You can download the Visual Studio solutions for this article at this location. With al ...
- C++自定义异常类
代码样例: #include <iostream> using namespace std; class illegalParameterValue { public: illegalPa ...
- 第三百三十一节,web爬虫讲解2—Scrapy框架爬虫—Scrapy安装—Scrapy指令
第三百三十一节,web爬虫讲解2—Scrapy框架爬虫—Scrapy安装—Scrapy指令 Scrapy框架安装 1.首先,终端执行命令升级pip: python -m pip install --u ...
- win32 数据类型 vs c#
在C#中做很多应用需要使用win32 API,但发现原型函数的一些数据类型看起来非常费劲,甚至在C#中“没有”这种数据类型,查阅了一下资料,数据类型对应关系整理如下,希望对大家有用: BOOL=Sys ...
- rqalpha-自动量化交易系统(一)
因为最近做的东西牵涉到自动计算这一块,在网上搜了一下,基本上python做自动量化交易成了一个趋势,于是花了两天学习一下. 目标很简单,学习,使用. rqalpha看起来是比较成熟的,这儿看重的是自带 ...
- svn -- svn配置自动启动
配置自动启动服务 1.添加到系统服务 sc create SVNService binpath= “D:\subversion\bin\svnserve.exe --service -r D:/sv ...
- dendrogram 和 barplot 的组合
示例代码: data <- mtcars[1:10, ] hc <- hclust(dist(data)) hcd <- as.dendrogram(hc) par(mfrow = ...
- js模拟键盘事件
<!DOCTYPE html> <html> <head lang="zh-CN"> <meta charset="UTF-8& ...