“12”。这可以通过使用“$iI进行一些基准测试来解决。使用array\u count\u values()使算法加快了20%,而计算min和max在计数循环中使算法减慢了20%。顺便说一句,在PHP中不是O(n)。是O(nlogn)相反。May与混合哈希
“12”。这可以通过使用“$iI进行一些基准测试来解决。使用array\u count\u values()使算法加快了20%,而计算min和max在计数循环中使算法减慢了20%。顺便说一句,在PHP中不是O(n)。是O(nlogn)相反。May与混合哈希,php,algorithm,sorting,data-structures,Php,Algorithm,Sorting,Data Structures,“12”。这可以通过使用“$iI进行一些基准测试来解决。使用array\u count\u values()使算法加快了20%,而计算min和max在计数循环中使算法减慢了20%。顺便说一句,在PHP中不是O(n)。是O(nlogn)相反。May与混合哈希表而非经典数组的内部使用有关。是的,从快速比较中,我看不出有什么区别。它是因为样式错误还是仅仅是错误……如果它是错误的,为什么会得到批准?他是对的!for-test不正确……在元素“12”上面的答案中“他不见了。测试的权利是“$i” $ar =
“12”。这可以通过使用“$iI进行一些基准测试来解决。使用
array\u count\u values()
使算法加快了20%,而计算min
和max
在计数循环中使算法减慢了20%。顺便说一句,在PHP中不是O(n)。是O(nlogn)相反。May与混合哈希表而非经典数组的内部使用有关。是的,从快速比较中,我看不出有什么区别。它是因为样式错误还是仅仅是错误……如果它是错误的,为什么会得到批准?他是对的!for-test不正确……在元素“12”上面的答案中“他不见了。测试的权利是“$i”
$ar = array(7, 2, 0, 3, 8, 0, 12, 7, 6, 7);
$count = array();
foreach ($ar as $v)
$count[$v]++;
$sorted = array();
foreach ($count as $v => $c)
for ($i = 0; $i < $c; $i++)
$sorted[] = $v;
$ar = array(7, 2, 0, 3, 8, 0, 12, 7, 6, 7);
$sorted = $ar;
sort($sorted);
var_dump($ar);
var_dump($sorted);
array(7,2,0,3,8,0,12,7,6,7);
array(0,0,2,3,6,7,7,7,8,12);
$sorted = $ar;
sort($sorted);
$ar = array(7, 2, 0, 3, 8, 0, 12, 7, 6, 7);
$count = array();
foreach ($ar as $v) {
// add each number in $ar to $count.
// the first number in $ar is 7, so 7 will be the first number in $count.
// because 7 is in $ar 3 times, $count[7] == 3.
$count[$v]++;
}
// the output of print_r will be very revealing:
print_r($count);
/*Array
(
[7] => 3
[2] => 1
[0] => 2
[3] => 1
[8] => 1
[12] => 1
[6] => 1
)*/
$sorted = array();
foreach ($count as $v => $c) {
// the first entry: $count[7] == 3
// so add 7 to $sorted 3 times.
// the second entry: $count[2] == 1
// so add 2 to $sorted 1 time.
// etc.
for ($i = 0; $i < $c; $i++) {
$sorted[] = $v;
}
}
$ar = array(7, 2, 0, 3, 8, 0, 12, 7, 6, 7);
$count = array();
foreach ($ar as $v) {
$count[$v] = isset($count[$v]) ? $count[$v] + 1 : 1;
}
$sorted = array();
$min = min($ar);
$max = max($ar);
for ($i=$min; $i<=$max; $i++) {
if (isset($count[$i])) {
for ($j=0; $j<$count[$i]; $j++) {
$sorted[] = $i;
}
}
}
$ar = array(7, 2, 0, 3, 8, 0, 12, 7, 6, 7);
$count = array();
foreach ($ar as $v) {
$count[$v] = isset($count[$v]) ? $count[$v] + 1 : 1;
}
$sorted = array();
$min = min($ar);
$max = max($ar);
for ($i=$min; $i <= $max; $i++) {
if (isset($count[$i])) {
for ($j=0; $j<$count[$i]; $j++) {
$sorted[] = $i;
}
}
}