|
|
|
| Скажите как массив из несколька чисел int отсортировать от меньшего к большему не употребляя функцию sort()?
Заранее спасибо. | |
|
|
|
|
|
|
|
для: Vasyanew
(29.07.2011 в 23:36)
| | трыдать колотить)) ну можно конечно написать сравнение элементов массива, но чем вам стандартные функции то по перек горла? | |
|
|
|
|
|
|
|
для: Valick
(30.07.2011 в 00:06)
| | Задание такое дали. Сам понимаю что вы мне сейчас сказали. | |
|
|
|
|
|
|
|
для: Vasyanew
(30.07.2011 в 00:19)
| | лет 15 назад я подобное ваял, щас нуно вспоминать оптимальный алгоритм))
завтра прикину детородный орган к носу и попытаюсь разродиться кодом :))) | |
|
|
|
|
|
|
|
для: Valick
(30.07.2011 в 00:29)
| | Был бы очень благодарен, заранее спасибо. | |
|
|
|
|
|
|
|
для: Vasyanew
(30.07.2011 в 01:42)
| | Вот немного усовершенствованный классический вариант сортировки
<?php
$a=array("one"=>13,11,12,19,14,16,"seven"=>17,15,10,18);
echo "<PRE>";
print_r($a);
echo "</PRE>";
if(is_array($a)){
$c=count($a)-1;
do{
reset($a);
$f=false;
for($i=0;$i<$c;$i++){
$n=each($a);
$q=current($a);
$k=key($a);
if($n[1] <= $q) continue;
$a[$n[0]]=$q;
$a[$k]=$n[1];
$f=true;
}
}while($f);
}
echo "<PRE>";
print_r($a);
echo "</PRE>";
?>
|
классический вариант завязан на индексный массив, этому скрипту без разницы какой массив | |
|
|
|
|
|
|
|
для: Vasyanew
(29.07.2011 в 23:36)
| |
<?
$array = array(45, 4, 23, 66, 5, 25, 88, 9);
$count = count($array);
$arr = array();
for($i = 0; $i<$count; $i++) {
$min = min($array);
$key = array_search($min, $array);
unset($array[$key]);
$arr[] = $min;
}
print_r($arr);
|
| |
|
|
|
|
|
|
|
для: Max_Ivanov
(30.07.2011 в 01:57)
| | СПАСИБО!!! | |
|
|
|
|
|
|
|
для: Max_Ivanov
(30.07.2011 в 01:57)
| | халтура!!!))
за такое точно пару схлопочет от препода :)
я думаю весь смысл задания был в использовании простейших операций сравнения
__
и к стати почему for а не foreach? | |
|
|
|
|
|
|
|
для: Valick
(30.07.2011 в 11:48)
| | >и к стати почему for а не foreach?
Массив индексный, зачем же в этом случае foreach, который сигнализирует об использовании ассоциативного массива...
PS Коль уж выступаете с критикой, приводите свое конструктивное решение :), не предоставив своего не принятно как-то у профессионалов нападать... | |
|
|
|
|
|
|
|
для: cheops
(30.07.2011 в 11:58)
| | кому сигнализирует?) foreach вроде как "без рода и звания", предназаначен для обода массива, любого массива.
ну а над алгоритмом я работаю, точнее над уменьшением числа итераций, сам алгоритм вроде как уже давно известен | |
|
|
|
|
|
|
|
для: Valick
(30.07.2011 в 11:48)
| | foreach медленнее чем for да и к тому же там не используются переменные производные от массива, там просто цикл нужно было запустить
если уж меня for то на это
<?
while($array) {
$min = min($array);
$key = array_search($min, $array);
unset($array[$key]);
$arr[] = $min;
}
|
| |
|
|
|