PHP插入排序函数性能

PHP插入排序函数性能,php,arrays,performance,sorting,Php,Arrays,Performance,Sorting,我正在学习排序,我制作了一个插入排序函数(): 如何提高插入排序函数的性能? 谢谢。对于大量项目,插入排序不是一种非常有效的算法 这里需要注意的是,如果算法本身很慢,您无法进行任何优化来产生显著的差异 使用mergesort或quicksort alogrithm在您的排序中编写一个插入排序,您的排序时间将显著减少。对于大量项目,插入排序不是一个非常有效的算法 function insertionSort($array){ $length = count($array); fo

我正在学习排序,我制作了一个插入排序函数():

如何提高插入排序函数的性能?
谢谢。

对于大量项目,插入排序不是一种非常有效的算法

这里需要注意的是,如果算法本身很慢,您无法进行任何优化来产生显著的差异


使用mergesort或quicksort alogrithm在您的排序中编写一个插入排序,您的排序时间将显著减少。

对于大量项目,插入排序不是一个非常有效的算法

function insertionSort($array){
    $length = count($array);

    for($j=1;$j<$length;$j++){
        $key = $array[$j];
        $i=$j-1;
        while($i>=0 && $array[$i]>$key){
            $array[$i+1]=$array[$i];
            $array[$i]=$key;
            $i--;
        }
    }
    return $array;
}
这里需要注意的是,如果算法本身很慢,您无法进行任何优化来产生显著的差异

使用mergesort或quicksort alogrithm编写一个排序程序,您在上的排序时间将显著减少。

函数插入排序($array){
function insertionSort($array){
    $length = count($array);

    for($j=1;$j<$length;$j++){
        $key = $array[$j];
        $i=$j-1;
        while($i>=0 && $array[$i]>$key){
            $array[$i+1]=$array[$i];
            $array[$i]=$key;
            $i--;
        }
    }
    return $array;
}
$length=计数($array); 对于($j=1;$j=0&&$array[$i]>$key){ $array[$i+1]=$array[$i]; $array[$i]=$key; $i--; } } 返回$array; }
使用此功能 在我的机器里:10000美元 所用时间为:7.4051690101624和 上面提到的函数是:21.813783884048

函数插入排序($array){
$length=计数($array);
对于($j=1;$j=0&&$array[$i]>$key){
$array[$i+1]=$array[$i];
$array[$i]=$key;
$i--;
}
}
返回$array;
}
使用此功能 在我的机器里:10000美元 所用时间为:7.4051690101624和
上面提到的函数是:21.813783884048

for循环保证数组的迭代顺序。foreach可能会以非顺序顺序返回元素。foreach的性能不好:。谢谢。你真的有实际的性能问题吗?实用的?请注意,phpbench以微秒(百万分之一秒)为单位进行处理。大多数的比较结果都表明,这不会对代码产生任何实际影响。你提出的每一个数据库请求都要花费数千倍的时间。实际上没有。我只是在学习。谢谢。使用mysql可能会更好。for循环保证数组的迭代顺序。foreach可能会以非顺序顺序返回元素。foreach的性能不好:。谢谢。你真的有实际的性能问题吗?实用的?请注意,phpbench以微秒(百万分之一秒)为单位进行处理。大多数的比较结果都表明,这不会对代码产生任何实际影响。你提出的每一个数据库请求都要花费数千倍的时间。实际上没有。我只是在学习。谢谢。使用mysql可能会更好。@thom如果你想学习排序,就要涵盖所有基础知识@汤姆如果你想学习分类,你就要覆盖你所有的基础!
function insertionSort($array){
    $length = count($array);

    for($j=1;$j<$length;$j++){
        $key = $array[$j];
        $i=$j-1;
        while($i>=0 && $array[$i]>$key){
            $array[$i+1]=$array[$i];
            $array[$i]=$key;
            $i--;
        }
    }
    return $array;
}