您的位置:首页 > Web前端 > JavaScript

javascript排序算法

2016-04-12 00:00 267 查看
摘要: 本文中用javascript实现了数组的排序算法,包括冒泡排序法,选择排序法,插入排序法,快速排序法。

javascript对数组进行排序。首先定义要排序的数组。

var arr = [10,9,19,8,23,7,3];

然后定义一个用于交换数组中元素的方法

function swap(arr,i,j){
var temp = arr[i];
arr[i]=arr[j];
arr[j] = temp;
}


冒泡排序法

/*冒泡排序法*/
function bubbleSort(){
for (var i = arr.length-1; i > 0; i--) {
for(var j= 0;j<i;j++){
if(arr[j]>arr[j+1]){
swap(arr,j,j+1);
}
}
}
}


选择排序法

/*选择排序法*/
function selectSort(){
for (var i = 0; i < arr.length; i++) {
var min = i;
for(var j= i+1;j<arr.length;j++){
if(arr[min]>arr[j]){
min = j;
}
}
swap(arr,i,min);
}
}


插入排序法

/*插入排序法*/
function insertSort(){
for (var i = 1; i < arr.length; i++) {
var j = i;
var temp = arr[i];
while(j>0&&temp<arr[j-1]){
arr[j]=arr[--j];
}
arr[j] = temp;
}
}


快速排序法

/*快速排序法*/
function subQuikSort(arr,start,end){
if(end>start){
var temp = arr[start],
i = start,
j = end+1;
while(true){
while(i<end&&arr[++i]<temp);
while(j>start&&arr[--j]>temp);
if(i<j){
swap(arr,i,j);
}else{
break;
}
}
swap(arr,start,j);
subQuikSort(arr,start,j-1);
subQuikSort(arr,j+1,end);
}
}
function quikSort(){
return subQuikSort(arr,0,arr.length-1);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息