其他分享
首页 > 其他分享> > 题目24

题目24

作者:互联网

  身高从低到高
    身高相同体重从轻到重
    体重相同维持原来顺序
    输入
    4
    100 100 120 130
    40 30 60 50
    输出:
    2 1 3 4
    输入
    3
    90 110 90
    45 60 45
    输出
    1 3 2

思路:

[
    [1,100,40],//当作一个整体
[2,100,30],
[3,120,60],
[4,130,50]
];
进行冒泡排序
<?php
$n=fgets(STDIN);
$h=explode(' ',trim(fgets(STDIN)));
$w=explode(' ',trim(fgets(STDIN)));
$arr=[];
for($i=0;$i<$n;$i++){
    $arr[$i][0]=$i+1;
    $arr[$i][1]=$h[$i];
    $arr[$i][2]=$w[$i];
}
solution($arr);

function solution($arr)
{
    for ($i = 0; $i < count($arr)-1; $i++) {
        for ($j=0;$j<count($arr)-$i-1;$j++){
            if($arr[$j][1]==$arr[$j+1][1]){
                if($arr[$j][2]>$arr[$j+1][2]){
                    $temp=$arr[$j];
                    $arr[$j]=$arr[$j+1];
                    $arr[$j+1]=$temp;
                }
            }elseif ($arr[$j][1]>$arr[$j+1][1]){
                $temp=$arr[$j];
                $arr[$j]=$arr[$j+1];
                $arr[$j+1]=$temp;
            }
        }
    }
    $s='';
    foreach ($arr as $v){
        $s.=$v[0].' ';
    }
    echo $s;
}

 

标签:24,arr,题目,temp,45,60,130,100
来源: https://www.cnblogs.com/weiguomiao/p/16489618.html