js四大基本排序算法

1.冒泡排序

var $arr = [1,12,3,4,9,3,4,10];
for(var i = 0; i < $arr.length - 1; i++)
{
    for(var j = 0; j < $arr.length - i - 1; j++)
    {
        if($arr[j] > $arr[j + 1])
        {
             var tmp = $arr[j];
             $arr[j] = $arr[j + 1];
             $arr[j + 1] = tmp;
        }
   }
}

2.选择排序

var tmp;
for(var $i = 0; $i < $arr.length; $i++)
{
    var index = $i;
    for(var $j = $i + 1; $j < $arr.length; $j++)
    {
        if($arr[index] > $arr[$j])
        {
            index = $j;
        }
    }
    tmp = $arr[$i];
    $arr[$i] = $arr[index];
    $arr[index] = tmp;
}

3.快速排序

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

4.插入排序

for($i = 0; $i < $arr.length; $i++)
{
     $k = $i;
     while($k > 0)
     {
         if($arr[$k - 1] > $arr[$k])
         {
             $tmp = $arr[$k];
             $arr[$k] = $arr[$k - 1];
             $arr[$k-1] = $tmp;
         }
         $k --;
     }
}
    console.log($arr);
添加新评论