JavaScript 数组排序三种定义

2011-08-23 17:02:24 by 【6yang】, 130 visits, 收藏 | 返回

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JavaScript 数组排序三种定义</title>
</head>

<body>
<script>

var arr = [5,1,3,51,55,2,12,5,1,3,5];

//first method
var fnSort = function(arr){
    var arrN = arr.sort();
    //arrN.reverse()
    return arrN;
}
alert(fnSort(arr));

//second method
var normalSort = function(arr){
    for(var len = arr.length, i = len-1; i >= 0; i--){
        for(var j = len; j >= i; j--){
            if(arr[i] > arr[j]){
                var a = arr[i];
                arr[i] = arr[j];
                arr[j] = a;
            }
        }   
    }
    return arr;
}
alert(normalSort(arr));

//third method
var quickSort = function(arr) {
if (arr.length <= 1) { return arr; }
var pivotIndex = Math.floor(arr.length / 2);
var pivot = arr.splice(pivotIndex, 1)[0];
var left = [];
var right = [];
for (var i = 0; i < arr.length; i++){
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return quickSort(left).concat([pivot], quickSort(right));
};
alert(quickSort(arr));

//forth method
var normalSort01 = function(arr){
    for(var len = arr.length, i = 0; i <= len; i++){
        for(var j = len; j <= i; j++){
            if(arr[i] > arr[j]){
                var a = arr[i];
                arr[i] = arr[j];
                arr[j] = a;
            }
        }   
    }
    return arr;
}
alert(normalSort01(arr));


</script>
</body>
</html>

分享到:
share

    图片原图

    loading

    loading