cari

Rumah  >  Soal Jawab  >  teks badan

Algoritma - Bagaimana untuk melaksanakan kedudukan skor menggunakan PHP, sebarang idea yang bagus?

Buat penarafan markah pelajar

世界只因有你世界只因有你2782 hari yang lalu1184

membalas semua(5)saya akan balas

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 13:18:24

    <?php

    $arr = [99,100,100];
    $arr1=$arr;
    rsort($arr1);
    $c=[];
     foreach ( $arr as $v){
         $b= array_search($v, $arr1);
         $c[]=$b+1;
     }
     print_r($c);
    

    ?>

    Ini boleh memenuhi keperluan anda, tetapi saya mempunyai soalan yang kedua-duanya terikat untuk tempat pertama.

    balas
    0
  • ringa_lee

    ringa_lee2017-05-16 13:18:24

    Apa yang dikehendaki oleh penyoal ialah memaparkan kedudukan mengikut susunan susunan asal (boleh diikat). Idea umum adalah untuk menambah tatasusunan asal dengan maklumat kedudukan, dan kemudian membina tatasusunan kedudukan secara terbalik berdasarkan hasil yang disusun. Agak panjang untuk menulis:

    get_ranks(a[1:n])
      s ← array(n)
      ranks ← array(n)
      for i from 1 to n                 ▷ s[i] has record type
        s[i] ← {position: i, value: a[i], rank: 0}
      descending_sort(s by value)       ▷ sort by s[i].value
      s[1].rank ← 1
      for i from 2 to n
        if s[i].value < s[i-1].value    ▷ dense rank
          s[i].rank ← s[i-1].rank + 1
        else
          s[i].rank ← s[i-1].rank
      for i from 1 to n                 ▷ construct result
        ranks[s[i].position] ← s[i].rank
      return ranks[]
      

    Perhatikan bahawa jika terdapat berbilang orang ke-1 terikat untuk tempat ke-n, orang seterusnya akan menjadi orang ke-1, yang agak berbeza daripada contoh yang diberikan oleh penyoal. Kesesakan kerumitan keseluruhan algoritma adalah pengisihan, iaitu O(n lgn).

    balas
    0
  • PHP中文网

    PHP中文网2017-05-16 13:18:24

    Gunakan fungsi pengisihan tatasusunan PHP sendiri?

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:18:24

    http://www.php.net/manual/zh/...
    Isih data terbina dalam sepatutnya dapat menyelesaikan masalah anda

    balas
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:18:24

    Isih dahulu tatasusunan ini mengikut skor, kemudian masukkan semula tatasusunan ini. Kemudian baru dapatkan kunci mengikut markah.

    Selain itu: markah anda tidak ditulis dalam pangkalan data, jadi ia dikeluarkan mengikut urutan

    balas
    0
  • Batalbalas