Heim >Backend-Entwicklung >PHP-Tutorial >So implementieren Sie Zählsortiercode in PHP

So implementieren Sie Zählsortiercode in PHP

不言
不言Original
2018-08-02 13:48:371589Durchsuche

Dieser Artikel stellt Ihnen den Code zur Implementierung der Zählsortierung in PHP vor. Ich hoffe, dass er Ihnen als Referenz dienen wird.

/**
 * 计数排序: 桶排序的一种
 */
$arr = [5,69,4,32,14,8,74,95,23,56,41,5,31,63];
// include 'data.php';
$length = count($arr);
$maxValue = $arr[0];

// 找出数组中的最大值
for ($i=1; $i < $length; $i++) {
    if ($arr[$i] > $maxValue) {
        $maxValue = $arr[$i];
    }
}
/**
 * 定长数组, 键会自动排序, PHP数组是hash表的实现,
 * 如果这里用普通的数组, 键不会自动排序, 不存在的键也不会自动填充null
 */
$frequency = new SplFixedArray($maxValue + 1);

/**
 * 统计arr中, 值出现的频次
 */
for ($i=0; $i < $length; $i++) {
    if(empty($frequency[$arr[$i]]))
        $frequency[$arr[$i]] = 0;
    $frequency[$arr[$i]] += 1;
}

// 清空$arr
$arr = [];
// 遍历frequency, 如果其元素有值, 那么将键push到arr中
for ($i=0; $i < count($frequency); $i++) {
    if (!empty($frequency[$i])) {
        for ($j=0; $j < $frequency[$i]; $j++) {
            $arr[] = $i;
        }
    }
}

print_r($arr);

Empfohlene verwandte Artikel:

Verwendung der echo()-Funktion in PHP (mit Code)

So konfigurieren Sie den versteckten Eingang in Nginx-Datei index.php (Code)

Das obige ist der detaillierte Inhalt vonSo implementieren Sie Zählsortiercode in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn