用js实现简单排序算法
一.冒泡排序
var arr1=[3,9,2,7,0,8,4];
for(var i=0;i<arr1.length;i++){
for(var j=i+1;j<arr1.length;j++){
var temp=0;
if(arr1[i]>arr1[j]){
temp=arr1[i];
arr1[i]=arr1[j];
arr1[j]=temp;
}
}
}
alert(arr1);
二.快速排序
var a=[3,5,0,9,2,7,5];
function quickSort(arr){
var len=a.length;
if(len<=1) return arr;
function sort(low,height){
var pivot=a[low];
var i=low,j=height,t;
if(i>j) return false;
while(i!=j){
while(a[j]>=pivot&&i<j){
j--;
}
while(a[i]<=pivot&&i<j){
i++;
}
if(i<j){//把比pivot大的换到右边,小的换到左边
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
//此时i和j指向同一个数字,把这个数字和pivot交换
a[low]=a[i];
a[i]=pivot;
//递归:把pivot左边的数进行一次排序,右边的数进行一次排序
sort(low,i-1);
sort(i+1,height);
}
//调用这个排序的函数
sort(0,len-1);
return a;
}
alert(quickSort(a));
三.选择排序
var arr=[3,6,9,4,7,2,4,1];
var a=[],len=arr.length,t;
while(len>0){
for(var i=1;i<len;i++){
if(arr[0]>arr[i]){
t=arr[0];
arr[0]=arr[i];
arr[i]=t;
}
}
var num=arr.shift(arr[0]);//去掉arr[0]
a.push(num);
len--;
}
alert(a);
用js实现简单排序算法的更多相关文章
- 简单排序算法 C++类实现
简单排序算法: 冒泡排序 插入排序 选择排序 .h代码: // // SortClass.h // sort and selection // // Created by wasdns on 16/1 ...
- 简单排序算法设计(Java)
总共有八种排序算法,还是慢慢看吧 1.简单排序算法 简单排序算法就是设置标兵,逐个比较数,然后查找插入位置,插入 public static void p(int[] a){ for(int i=0; ...
- [ 转载 ] js十大排序算法:冒泡排序
js十大排序算法:冒泡排序 http://www.cnblogs.com/beli/p/6297741.html
- js 十大排序算法 All In One
js 十大排序算法 All In One 快速排序 归并排序 选择排序 插入排序 冒泡排序 希尔排序 桶排序 堆排序(二叉树排序) 基数排序 计数排序 堆排序(二叉树排序) https://www.c ...
- js的几种简单排序算法及其效率实测
function swap(arr,index1,index2){ var t = arr[index1]; arr[index1] = arr[index2]; arr[index2] = t; } ...
- JS写的排序算法演示
看到网上有老外写的,就拿起自已之前完成的jmgraph画图组件也写了一个.想了解jmgraph的请移步:https://github.com/jiamao/jmgraph 当前演示请查看:http:/ ...
- JS中常见排序算法详解
本文将详细介绍在JavaScript中算法的用法,配合动图生动形象的让你以最快的方法学习算法的原理以及在需求场景中的用途. 有句话怎么说来着: 雷锋推倒雷峰塔,Java implements Java ...
- JS实现常用排序算法—经典的轮子值得再造
关于排序算法的博客何止千千万了,也不多一个轮子,那我就斗胆粗制滥造个轮子吧!下面的排序算法未作说明默认是从小到大排序. 1.快速排序2.归并排序3.冒泡排序4.选择排序(简单选择排序)5.插入排序(直 ...
- 用javascript实现简单排序算法
声明:本文为原创文章,如需转载,请注明来源WAxes,谢谢! 本文为楼主自己的学习记录文章,若有不当之处请斧正. 本文主要记录排序算法 [冒泡排序] 感觉这个是最简单的排序算法了.直接引用维基百科里的 ...
随机推荐
- BNUOJ-29357 Bread Sorting 模拟
题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=29357 直接模拟就可以了.. //STATUS:C++_AC_190MS_1884KB # ...
- 怎么创建MongoDB数据库
MongoDB didn’t provides any command to create “database“. Actually, you don’t need to create it manu ...
- hdoj 5124 lines【线段树+离散化】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5124 题意:给你n段区间,他们有重合的点A,问你重合最多次的点A重合多少次 题解:对区间离散化后,维护 ...
- ScrollView详解
创建方式 1:StoryBoard/Xib 这里StoarBoard就不多说,直接拖就可以,说太多没意思,如果连这个都不会我只能先给你跪了! 2:代码: 1 2 3 CGRect bounds = [ ...
- PHOTOSHOP 中画笔工具和铅笔工具的一个小小差别
今天在作图的时候偶然发现的一个以前并没有在意画笔和铅笔的小小区别,情况是这样的,我在做图像处理,需要一个单像素的闭合曲线灰度图来做实验,然后用画笔工具把直径调到1之后去作图,放大之后发现,跟预想的结果 ...
- oscgit
Gitlab PaaS项目演示 git config --global user.name "你的名字或昵称" git config --global user.email &qu ...
- JavaScript要点 (一) 变量-作用域
JavaScript 作用域 作用域—可访问变量的集合. 全局变量或者函数可以覆盖window对象的变量或者函数: 局部变量和window对象可以覆盖全局变量和函数. JavaScript 作用域 在 ...
- 判断一个Bitmap图像是否是.9图
见BitmapFactory的源码中 byte[] np = bm.getNinePatchChunk(); final boolean isNinePatch = np != null & ...
- Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音
转载:http://blog.csdn.net/xiaanming/article/details/12684155 转载请注明出处:http://blog.csdn.net/xiaanming/ar ...
- PCL入门—点云操作 定义变量 显示点云 存储
// 定义相关变量 pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_ptr (new pcl::PointCloud<pcl::PointXYZ& ...