Rumah >Java >javaTutorial >Isih tatasusunan 0, 1 dan 2 menggunakan Java

Isih tatasusunan 0, 1 dan 2 menggunakan Java

王林
王林ke hadapan
2023-09-09 19:57:091209semak imbas

Isih tatasusunan 0, 1 dan 2 menggunakan Java

Diberi tatasusunan yang terdiri daripada 0, 1 dan 2, susun elemen mengikut tertib supaya semua 0 didahulukan sebelum 1 dan semua 2 diakhiri. Kita perlu mengisih semua elemen tatasusunan di tempatnya.

Kita boleh menggunakan algoritma pengisihan DNF (Bendera Belanda) untuk menyelesaikan masalah ini. Contohnya,

Input-1 -

arr[ ]= {2,0,0,1,2,1 }

Output -

-

- - #

Penjelasan

− Gunakan algoritma pengisihan DNF untuk mengisih tatasusunan yang diberikan mengandungi 0, 1 dan 2, ia akan dikeluarkan sebagai {0,0,1,1,2,2}.

Input-2

0 0 1 1 2 2

Output#🎜🎜🎜# -

- - 🎜#Penjelasan

− Gunakan algoritma pengisihan DNF untuk mengisih tatasusunan elemen yang diberikan yang mengandungi 0, 1 dan 2, ia akan dikeluarkan sebagai {0,0,1,1,1,1,2}.

Cara menyelesaikan masalah ini

Dalam tatasusunan 0, 1 dan 2 yang diberikan, kita boleh menggunakan algoritma pengisihan DNF.

Algoritma pengisihan DNF

− Algoritma ini memerlukan 3 penuding untuk melintasi keseluruhan tatasusunan dan menukar elemen yang diperlukan.
  • Cipta penuding rendah pada permulaan tatasusunan dan penuding tinggi menunjuk ke penghujung tatasusunan.
  • Cari titik tengah tatasusunan dan cipta penunjuk tengah yang berulang dari permulaan tatasusunan hingga akhir.
  • Jika penunjuk tengah tatasusunan ialah '0', tukar elemen yang menunjuk ke penunjuk rendah. Ditambah penunjuk rendah dan pertengahan.
  • Jika penunjuk tengah tatasusunan ialah '2', tukarkannya dengan elemen yang menghala ke penunjuk tinggi. Naikkan penunjuk tengah dan kurangkan penunjuk tinggi.
  • Jika penunjuk tengah tatasusunan ialah '1', naikkan penunjuk tengah.

Contoh

Demonstrasi

arr[ ] = {0,1,1,2,1,1,0}

Output#🎜🎜🎜 di atas akan menjana Output berikut:

0 0 1 1 1 1 2

Atas ialah kandungan terperinci Isih tatasusunan 0, 1 dan 2 menggunakan Java. 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