Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Tulis program dalam C++ untuk mencari perbezaan terkecil kth antara semua pasangan elemen dalam tatasusunan

Tulis program dalam C++ untuk mencari perbezaan terkecil kth antara semua pasangan elemen dalam tatasusunan

WBOY
WBOYke hadapan
2023-09-05 17:25:06758semak imbas

Tulis program dalam C++ untuk mencari perbezaan terkecil kth antara semua pasangan elemen dalam tatasusunan

Andaikan kita mempunyai senarai yang mengandungi berbilang integer. Kita perlu mencari perbezaan antara setiap pasangan nilai dalam tatasusunan dan mencari bilangan perbezaan terkecil ke-k. Indeks bermula dari 0 dan nilai k diberikan kepada kita sebagai input.

Jadi jika input adalah seperti nombor = {2, 6, 4, 8}, k = 2, maka output akan menjadi 2.

Perbezaan antara dua pasangan ialah -

(2, 6) = 4

(2, 4) = 2

(2, 8) = 6

(6, 4) = 2

(6 , 8) = 2

(4, 8) = 4

Jika kita mengisih nilai ini, ia menjadi 2, 2, 2, 4, 4, 6. Nilai minimum kedua ialah 2. (diindeks daripada 0).

Untuk menyelesaikan masalah ini kita akan mengikuti langkah berikut -

  • Naikkan k sebanyak 1
  • Isih input tatasusunan
  • le := 0
  • ri := Elemen terakhir input - Item pertama input
  • le
  • pertengahan := (le + ri) / 2
  • tmp := 0
  • lp := 0
  • digunakan untuk memulakan i := 1, apabila i
  • semasa input[i] - input[lp] > pertengahan, jalankan −
    • lp := lp + 1
  • tmp := tmp + i - lp
  • jika tmp >= k, maka -
      ri := mid
  • Jika tidak
    • le := mid + 1
  • kembali le
  • Contoh

    untuk lebih memahami perlaksanaan yang berikut ee

    keluaran

    rreeee

    Atas ialah kandungan terperinci Tulis program dalam C++ untuk mencari perbezaan terkecil kth antara semua pasangan elemen dalam tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

  • Kenyataan:
    Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam