• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > 常用排序算法的js实现(冒泡、选择、插入、归并、希尔、快排)

常用排序算法的js实现(冒泡、选择、插入、归并、希尔、快排)

作者:颤抖的羽翼 字体:[增加 减小] 来源:互联网 时间:2017-08-19

颤抖的羽翼通过本文主要向大家介绍了希尔排序算法,c语言希尔排序算法,希尔排序算法代码,希尔加密算法,希尔排序算法原理等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
//冒泡排序
function sort(arr){
	for (var i=0; i<arr.length; i++){
		for(var j=0; j<arr.length-1-i; j++){
			if(arr[j]>arr[j+1]){
				var k = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = k;
			}
		}
	}
	return arr;
}
console.log(sort([1,4,2,6,3,7]));


//选择排序
function sort(arr){
	for(var i=0; i<arr.length-1; i++){
		var k = i;
		for(var j=i+1; j<arr.length; j++){
			if(arr[j]<arr[k])
				k = j;
		}
		if(k!=i){
			var t = arr[k];
			arr[k] = arr[i];
			arr[i] = t;
		}
	}
	return arr;
}
console.log(sort([1,4,2,6,3,7]));


//插入排序
function sort(arr){
	for(var i=1; i<arr.length; i++){
		for(var j=0; j<i; j++){
			if(arr[j]>arr[i]){
				var k = arr[i];
				arr.splice(i,1);
				arr.splice(j,0,k);
				break;
			}
		}
	}
	return arr;
}
console.log(sort([1,4,2,6,3,7]));


//归并排序
function guibing(arr1,arr2){
	var i=j=0;
	var arr = [];
	while(i<arr1.length && j<arr2.length){
		if(arr1[i]<=arr2[j]){
			arr.push(arr1[i++]);
		}else{
			arr.push(arr2[j++]);
		}
	}
	while(i<arr1.length){
		arr.push(arr1[i++]);
	}
	while(j<arr2.length){
		arr.push(arr2[j++]);
	}
	return arr;
}
function sort(arr){
	if(arr.length == 1)
		return arr;
	var mid = Math.floor(arr.length/2);
	var left = arr.slice(0,mid);
	var right = arr.slice(mid);
	return guibing(sort(left),sort(right));
}
console.log(sort([1,4,2,6,3,7,5,12,8,2,4]));


//快速排序
function sort(arr,l,r){
	if(l<r){
		var key = arr[l];
		var i=l,j=r;
		while(i<j){
			while(i<j && arr[j]>=key)
				j--;
			if(i<j)
				arr[i++]=arr[j];
			while(i<j && arr[i]<=key)
				i++;
			if(i<j)   
				arr[j--] = arr[i]
		}
		arr[i] = key;
		sort(arr,l,i-1);
		sort(arr,i+1,r);
	}
}
var arr = [1,4,2,6,3,7,5,12,8,2,4];
sort(arr,0,arr.length-1);
console.log(arr);


//希尔排序
function sort(arr){
	var i,j,gap;
	for (gap = parseInt(arr.length/2); gap > 0; gap = parseInt(gap / 2)){
		for (i = gap; i < arr.length; i++){
			for (j = i - gap; j > 0 && arr[j] > arr[j + gap]; j-=gap){
				var t = arr[j];
				arr[j] = arr[j + gap];
				arr[j + gap] = t;
			}
		}
	}
}
var arr = [1,4,2,6,3,7,5,12,8,2,4];
sort(arr);
console.log(arr);

 

 

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 基于JavaScript实现的希尔排序算法分析
  • 常用排序算法的js实现(冒泡、选择、插入、归并、希尔、快排)

相关文章

  • 2017-05-11微信小程序 radio单选框组件详解及实例代码
  • 2017-05-11JS实现的DIV块来回滚动效果示例
  • 2017-05-11Bootstrap面板学习使用
  • 2017-05-11jQuery验证表单格式的使用方法
  • 2017-08-14js回车事件触发
  • 2017-05-11nodejs基础应用
  • 2017-05-11Javascript中 带名 匿名 箭头函数的重要区别(推荐)
  • 2017-05-11bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
  • 2017-05-11js以及jquery实现手风琴效果
  • 2017-05-11微信小程序 传值取值的几种方法总结

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • JavaScript中日常收集常见的10种错误(推荐)
    • JavaScript类与封装
    • 从零开始学习Node.js系列教程五:服务器监听方法示例
    • jQuery实现最简单实用的分秒倒计时
    • jQuery实现验证码功能
    • AngularJS中run方法的巧妙运用
    • jQuery中layer分页器的使用
    • Vue.js基础学习之class与样式绑定
    • 基于node.js依赖express解析post请求四种数据格式
    • Bootstrap导航条鼠标悬停下拉菜单

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有