Из всего этого списка выбрал 3 самых быстрых алгоритма:
Сортировка выбором(почитать):
PHP код:
SelectionSort(_array[], size = sizeof _array){
for(new i = 0, value = 0, j = 0, swap = 0; i != size - 1; i++){
value = i;
for(j = i + 1; j != size; j++){
if(_array[ j ] > _array[ value ])//max to min
value = j;
}
if(value != i){
swap = _array[ i ];
_array[ i ] = _array[ value ];
_array[ value ] = swap;
}
}
}
Сортировка пузырьком(почитать):
PHP код:
BubbleSort(_array[], size = sizeof _array){
for(new i = 0, j = 0, swap = 0; i != size; i++) {
for( j = 0 ; j < i ; j++ ) {
if(_array[i] > _array[j]){//max to min
swap = _array[i];
_array[i] = _array[j];
_array[j] = swap;
}
}
}
}
Гномья сортировка(почитать):
PHP код:
GnomeSort(_array[], size = sizeof _array){
for( new j = 1, swap; j != size; ){
if(_array[ j - 1 ] >= _array[ j ]) ++ j;//max to min
else{
swap = _array[ j ];
_array[ j ] = _array[ j - 1 ];
_array[ j - 1 ] = swap ;
-- j;
if( j == 0)
j = 1;
}
}
}
10000 чисел пересортировало с таким результатом:
PHP код:
[08:35:42] gnome: 380ms
[08:35:42] bubble: 294ms
[08:35:43] selection: 155ms
На маленьких дистанциях они равны:
PHP код:
[08:36:24] gnome: 0ms
[08:36:24] bubble: 0ms
[08:36:24] selection: 0ms
Ссылки на материалы указаны.