implementación en PHP de ordenación por inserción

prefacio

Inserción especie de código para lograr Aunque no existe un ordenamiento de burbuja y ordenación por selección tan simple y crudo, pero es el principio debe ser el más fácil de entender, porque mientras la gente jugadas de póquer segundos deben ser capaces de entender. La ordenación por inserción es uno de los algoritmo de clasificación más sencilla, funciona mediante la construcción de una secuencia ordenada, para datos no ordenados, de exploración en secuencia ordenada de atrás hacia adelante, y encontrar las posiciones de inserción correspondientes.

La ordenación por inserción y el ordenamiento de burbuja, también hay un algoritmo de optimización, llamado la demolición de una inserción media.

pasos de un algoritmo

1, el primer elemento que debe considerarse como una secuencia primera ordenada de una secuencia ordenada, el segundo elemento es el último elemento como secuencia sin clasificar.

2, la secuencia de principio a fin no está ordenada escanea secuencialmente, el elemento de exploración se inserta en una posición adecuada de cada secuencia ordenada. (Si los elementos para ser insertados en una secuencia ordenada de elementos son iguales, los elementos a ser insertados se insertan en la parte posterior del elemento de iguales.)

presentación de mapa móvil

PHP implementación del código

function InsertSort($arr){
    $num = count($arr);
    // 遍历数组
    for ($i = 1;$i < $num; $i++) {
        // 获得当前值
        $iTemp = $arr[$i];
        // 获得当前值的前一个位置
        $iPos = $i - 1;
        // 如果当前值小于前一个值切未到数组开始位置
        while (($iPos >= 0) && ($iTemp < $arr[$iPos])) {
            // 把前一个的值往后放一位
            $arr[$iPos + 1] = $arr[$iPos];
            // 位置递减
            $iPos--;
        }
        $arr[$iPos+1] = $iTemp;
    }
    return $arr;
}

o

function InsertSort($arr) {
    $length = count($arr);
    for ($i = 0; $i < $length - 1; $i++) {
        for ($j = $i + 1; $j > 0; $j--) {
            if ($arr[$j] < $arr[$j - 1]) {
                $temp = $arr[$j - 1];
                $arr[$j - 1] = $arr[$j];
                $arr[$j] = $temp;
            } else {
                break;
            }
        }
    }
    return $arr;
}

 

Publicados 109 artículos originales · ganado elogios 101 · vistas 360 000 +

Supongo que te gusta

Origin blog.csdn.net/Alen_xiaoxin/article/details/105202512
Recomendado
Clasificación