冒泡排序:最简单、最慢、长度小于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三种简单排序算法的更多相关文章

  1. 三种简单排序算法(java实现)

    一.冒泡排序 算法思想:遍历待排序的数组,每次遍历比较相邻的两个元素,如果他们的排列顺序错误就交换他们的位置,经过一趟排序后,最大的元素会浮置数组的末端.重复操                   作 ...

  2. c语言实现基本的数据结构(二) 链表(包括链表的三种简单排序算法)

    #include "stdafx.h" #include <stdlib.h> //创建一个节点,data为value,指向NULL Node* Create(int ...

  3. js的几种简单排序算法及其效率实测

    function swap(arr,index1,index2){ var t = arr[index1]; arr[index1] = arr[index2]; arr[index2] = t; } ...

  4. [DS+Algo] 005 三种简单排序及其代码实现

    目录 1. 冒泡排序 BubbleSort 1.1 算法描述 1.2 性能分析 1.3 Python 代码实现 2. 选择排序 SelectionSort 2.1 算法描述 2.2 选择排序的主要优点 ...

  5. js三种经典排序:冒泡排序、插入排序、快速排序

    冒泡排序: function bubbleSort(arr){ for(var r=1;r<arr.length-1;r++){ for(var i=0;i<arr.length-r;i+ ...

  6. JavaScript版几种常见排序算法

    今天发现一篇文章讲“JavaScript版几种常见排序算法”,看着不错,推荐一下原文:http://www.w3cfuns.com/blog-5456021-5404137.html 算法描述: * ...

  7. 七种经典排序算法及Java实现

    排序算法稳定性表示两个值相同的元素在排序前后是否有位置变化.如果前后位置变化,则排序算法是不稳定的,否则是稳定的.稳定性的定义符合常理,两个值相同的元素无需再次交换位置,交换位置是做了一次无用功. 下 ...

  8. 简单排序算法设计(Java)

    总共有八种排序算法,还是慢慢看吧 1.简单排序算法 简单排序算法就是设置标兵,逐个比较数,然后查找插入位置,插入 public static void p(int[] a){ for(int i=0; ...

  9. PHP四种基本排序算法

    PHP的四种基本排序算法为:冒泡排序.插入排序.选择排序和快速排序. 下面是我整理出来的算法代码: 1. 冒泡排序: 思路:对数组进行多轮冒泡,每一轮对数组中的元素两两比较,调整位置,冒出一个最大的数 ...

随机推荐

  1. Spark硬件配置推荐

    1.存储系统 如果可以的话,把Spark的hadoop的节点安装在一起,最容易的方式是用standalone的模式安装,用mapred.child.java.opts设置每个任务的内存,用mapred ...

  2. springmvc 接受json参数的坑

    构造json数据时候js对象中的值 一定要用 "" 双引号,不能用单引号,因为转成字符串后,到后台进行解析时,因为java认为单引号是单字符 ,转不成对应的字符串,所以会报错! 如 ...

  3. PHP中“==”运算符的安全问题

    前言 PHP是一种通用的开源脚本语言,它的语法混合了C,Java,以及Perl等优秀语言的语法.除此之外,它还提供了大量的函数库可供开发人员使用.但是,如果使用不当,PHP也会给应用程序带来非常大的安 ...

  4. 解决Eclipse闪退问题的方法总结

    1.在C:/WINDOWS/system32 系统文件夹中ctrl+F 然后搜索java.exe,如果存在java.exe, javaw.exe etc.全部删除. 2.内存不足,打开Eclipse目 ...

  5. webpack4--热更新

    所谓热更新,就是在浏览器能同步刷新你的代码.webpack 热更新依赖 webpack-dev-server.具体实现步骤如下: 1.局部安装依赖 webpack-dev-server npm ins ...

  6. 微信小程序——button, swiper等默认样式更改

    微信开发工具里面,无法展示编译后的一些样式,如::before,::after这些伪类.有时候我们需要修改一些组件的默认样式会略感到麻烦,因为不知道是通过哪里控制的. 我就平常遇到的一些修改默认样式, ...

  7. OpenGL OBJ模型加载.

    在我们前面绘制一个屋,我们可以看到,需要每个立方体一个一个的自己来推并且还要处理位置信息.代码量大并且要时间.现在我们通过加载模型文件的方法来生成模型文件,比较流行的3D模型文件有OBJ,FBX,da ...

  8. 嵌入式驱动开发只设备数---dts

    http://blog.sina.com.cn/s/blog_ad64b8200101e7q0.html

  9. Activiti5小试牛刀demo流程

    demo流程目标:刚接触Activiti5,先大致了解下Activiti5的架构,熟悉下开发流程 搭建开发环境 首先给MyEclipse安装Activiti Designer插件,下载网址http:/ ...

  10. CloudSetuper

    地址:http://setup.qframer.com/help CloudSetuper CloudSetuper 是一款windows上的安装包制作工具,类似 NSIS or Inno Setup ...