排序算法JS实现
来源:互联网 发布:腾讯云和阿里云的比较 编辑:程序博客网 时间:2024/05/21 19:28
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>QuickSort.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<script type="text/javascript">
var count = 0;
//快速排序
function quickSort(data,low,high){
var key = data[low];
var i = low;
var j = high;
if(low < high){
while(i<j){
while(i<j&&data[j]>key){
j--;
count++;
}
if(i<j){
count++;
data[i] = data[j];
i++;
}
while(i<j&&data[i]<key){
count++;
i++;
}
if(i<j){
count++;
data[j]=data[i];
j--;
}
}
data[i] = key;
quickSort(data,low,i-1);
quickSort(data,i+1,high);
}
}
//冒泡排序
function maopao(data){
for(var i = 0;i<data.length-1;i++){
for(var j = 0;j<data.length-1-i;j++){
if(data[j]>data[j+1]){
count++;
var temp;
temp = data[j];
data[j] = data[j+1];
data[j+1] = temp;
}
}
}
}
function quickSortByAlexi_X(arr,l,r){
if(l<r){
var mid=arr[parseInt((l+r)/2)],
i=l-1,
j=r+1;
while(true){
while(arr[++i]<mid){count++};
while(arr[--j]>mid){count++};
if(i>=j){count++;break};
var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
quickSort(arr,l,i-1);
quickSort(arr,j+1,r);
}
return arr;
}
//直接插入排序
function insertSort(data){
for(var i = 1;i<data.length;i++){
var index = i;
var current = data[i];
while(index>0&&data[index-1]>current){
count++;
data[index] = data[index-1];
index--;
}
data[index] = current;
}
}
function runSortFunction(){
var data = [];
for(var i = 0;i<100;i++){
data.push(parseInt(Math.random()*100));
}
alert(data);
count = 0;
var sortType = document.getElementById('sortType');
switch(sortType.options[sortType.selectedIndex].value){
case 'quick':
quickSort(data,0,data.length-1);
break;
case 'maopao':
maopao(data);
break;
case 'quick_Alexi_X':
quickSortByAlexi_X(data,0,data.length-1);
break;
case 'insert':
insertSort(data);
break;
default:
break;
}
alert(data);
alert("比较次数:"+count);
}
</script>
</head>
<body>
排序:
<select id='sortType'>
<option value='quick' defaultSelected='true'>快速排序</option>
<option value='quick_Alexi_X'>快速排序标准版</option>
<option value='maopao'>冒泡排序</option>
<option value='insert'>直接插入排序</option>
</select>
<input type='button' onclick='runSortFunction()' value='排序'/>
</body>
</html>
- 排序算法JS实现
- Js实现排序算法
- js 实现排序算法
- 排序算法 JS实现
- js实现排序算法
- js实现各种排序算法
- 【算法】快速排序【JS实现】
- 【算法】合并排序【JS实现】
- 【算法】选择排序【JS实现】
- 【算法】插入排序【JS实现】
- 经典排序算法js实现
- 【算法】冒泡排序--js实现
- 【算法】插入排序-js实现
- js实现常见排序算法
- JavaScript实现十种经典排序算法(js排序算法)
- js实现排序算法(冒泡排序,直接插入排序)
- 【算法】随机化快速排序【JS实现】
- JS的各种排序算法实现
- ant的安装与配置
- SQL Server 提高数据库查询效率
- asp上传文件在Windows2008环境的问题
- c语言随机数
- beryl和MPlayer
- 排序算法JS实现
- Linux Shell 脚本
- 2010年获奖小小说(x_o_)
- 调和wine和输入法
- 云计算技术文档
- 快速实现将一个表中数据更新至另一个库中的同结构表
- Linux gnome-do 安装使用
- Oracle grant revoke 总结
- 我把fc6搞死了