首頁  >  文章  >  後端開發  >  如何用PHP實現數組中偶數位置元素大於奇數位置元素?

如何用PHP實現數組中偶數位置元素大於奇數位置元素?

藏色散人
藏色散人原創
2019-03-26 10:49:512249瀏覽


本篇文章主要介紹如何用PHP重新排列數組,並使偶數位置的元素大於奇數位置的元素。

如何用PHP實現數組中偶數位置元素大於奇數位置元素?

給定一個包含n個元素的陣列A,根據下列關係對陣列進行排序:

如果i是偶數,則A[i] >= A[i-1]。

如果i是奇數,則A[i] <= A[i-1]。

列印結果陣列。

範例:

输入:A[] = {1,2,2,1}
输出:1,2,1,2

注:
对于第一个元素,1 1,i = 2是偶数。
第三个元素1 1,i = 4是偶数。

输入:A[] = {1,3,2}
输出:1 3 2
注:
这里,数组也按照条件排序。
1 1和2 < 3。

觀察該陣列由[n/2]偶數位置的元素組成。如果我們把最大的[n/2]元素分配到偶數位置,其餘的元素分配到奇數位置,我們的問題就解決了。因為奇數位置的元素總是小於偶數位置的元素,因為它是最大元素,反之亦然。排序數組並在偶數位置分配第一個[n/2]元素。

以下是上述方法的PHP實作方法:

<?php 
// PHP程序重新排列数组中的元素,使偶数位置的元素大于奇数位置的元素
  
function assign($a, $n) 
{ 
      
    //排序数组
    sort($a); 
  
    $p = 0; $q = $n - 1; 
    for ($i = 0; $i < $n; $i++)  
    { 
          
        // 分配具有最大元素的索引
        if (($i + 1) % 2 == 0) 
            $ans[$i] = $a[$q--]; 
  
        // 用剩余元素分配奇数索引
        else
            $ans[$i] = $a[$p++]; 
    } 
  
    for ($i = 0; $i < $n; $i++)  
        echo($ans[$i] . " "); 
} 
  
$A = array( 1, 3, 2, 2, 5 ); 
$n = sizeof($A); 
assign($A, $n);

#輸出:

  1 5 2 3 2

相關推薦:《PHP教學

這篇文章就是關於用PHP重新排列數組,並使偶數位置的元素大於奇數位置的元素的方法介紹,希望對需要的朋友有所幫助!


以上是如何用PHP實現數組中偶數位置元素大於奇數位置元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn