首页 > 开发 > JS > 正文

Javascript中的常见排序算法

2024-09-06 12:42:52
字体:
来源:转载
供稿:网友
具体代码及比较如下所示:
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312"> 
<head> 
<title> 常见排序算法 之 JavaScript版 </title> 
<meta http-equiv="content-type" content="text/html; charset=gb2312" /> 
<meta name="keywords" content="排序,算法,JavaScript排序" /> 
<meta name="description" content="用JavaScript实现的常见排序算法:冒泡排序,选择排序,插入排序,谢尔排序,快速排序(递归),快速排序(堆栈),归并排序,堆排序" /> 
<script type="text/javascript"> 
 Array.prototype.swap = function(i, j) 
 { 
 var temp = this[i]; 
 this[i] = this[j]; 
 this[j] = temp; 
 } 
 Array.prototype.bubbleSort = function() 
 { 
 for (var i = this.length - 1; i > 0; --i) 
 { 
 for (var j = 0; j < i; ++j) 
 { 
 if (this[j] > this[j + 1]) this.swap(j, j + 1); 
 } 
 } 
 } 
 Array.prototype.selectionSort = function() 
 { 
 for (var i = 0; i < this.length; ++i) 
 { 
 var index = i; 
 for (var j = i + 1; j < this.length; ++j) 
 { 
 if (this[j] < this[index]) index = j; 
 } 
 this.swap(i, index); 
 } 
 } 
 Array.prototype.insertionSort = function() 
 { 
 for (var i = 1; i < this.length; ++i) 
 { 
 var j = i, value = this[i]; 
 while (j > 0 && this[j - 1] > value) 
 { 
 this[j] = this[j - 1]; 
 --j; 
 } 
 this[j] = value; 
 } 
 } 
 Array.prototype.shellSort = function() 
 { 
 for (var step = this.length >> 1; step > 0; step >>= 1) 
 { 
 for (var i = 0; i < step; ++i) 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表