Rumah > pembangunan bahagian belakang > C++ > Dalam C++, susun semula nombor positif dan negatif menggunakan ruang tambahan tetap

Dalam C++, susun semula nombor positif dan negatif menggunakan ruang tambahan tetap

王林
Lepaskan: 2023-09-13 22:25:05
ke hadapan
1297 orang telah melayarinya

Dalam C++, susun semula nombor positif dan negatif menggunakan ruang tambahan tetap

Kami mempunyai tatasusunan jenis integer yang mengandungi nombor positif dan negatif, dengan mengandaikan ia ialah arr[] daripada sebarang saiz tertentu. Tugasnya adalah untuk menyusun semula tatasusunan supaya semua elemen tatasusunan diisih menggunakan fungsi isihan terbina dalam C++ STL dan menggunakan rekursi Pengekodan teknikal dan pencetakan keputusan.

Mari kita lihat pelbagai senario input dan output ini −

Input − int arr[] = {4, 2, -1 , -1, 6, -3, 0}

Output − Susun semula nombor positif dan negatif, menggunakan ruang tambahan tetap: -3 -1 -1 0 6 2 4 .

Penjelasan − Kami diberi tatasusunan integer bersaiz 7, mengandungi unsur positif dan negatif. Sekarang, kita akan menyusun semula tatasusunan supaya semua elemen dalam tatasusunan diisih dalam ruang tambahan yang berterusan dan hasil akhirnya ialah -3 -1 -1 0 2 4 6.

Input − int arr[] = {-9, -10, 2, 3, 10, 5, 8, 4}

Output − Susun semula nombor positif dan negatif, menggunakan ruang tambahan tetap: -9 -10 2 3 10 5 8 4

Penjelasan# Kami# ​​∜🎜 diberi tatasusunan integer bersaiz 8 yang mengandungi unsur positif dan negatif. Sekarang, kita akan menyusun semula tatasusunan supaya semua elemen dalam tatasusunan diisih dalam ruang tambahan yang berterusan dan hasil akhir ialah -9 -10 2 3 10 5 8 4.

Kaedah yang digunakan dalam atur cara berikut adalah seperti berikut

  • Masukkan tatasusunan elemen jenis integer dan kira saiz tatasusunan.

  • Gunakan gelung FOR untuk mencetak tatasusunan sebelum melakukan operasi susun semula.

  • Panggil fungsi Susunan Semula(arr, saiz) dengan menghantar tatasusunan dan saiz tatasusunan sebagai parameter.

  • Di dalam fungsi Penyusunan Semula(arr, saiz)

    • Tetapkan jenis integer i tetapkan j kepada saiz -1.

    • Mula sementara(benar). Di dalam sementara itu, mulakan gelung lain dan naikkan i apabila arr[i] kurang daripada 0 dan i kurang daripada saiz.

    • Apabila WHILE arr[j] lebih besar daripada 0 dan j lebih besar daripada 0, kurangkan j.

    • Semak JIKA i kurang daripada j, kemudian tetapkan suhu kepada arr[i], arr[i] kepada arr[j] dan arr[j] kepada suhu .

    • Jika tidak, keluar dari gelung.

  • Cetak hasilnya.

Contoh

#include<iostream>
using namespace std;
void Rearrangement(int arr[], int size){
   int i = 0;
   int j = size - 1;
   while(true){
      while(arr[i] < 0 && i < size){
         i++;
      }
      while(arr[j] > 0 && j >= 0){
         j--;
      }
      if (i < j){
         int temp = arr[i];
         arr[i] = arr[j];
         arr[j] = temp;
      }
      else{
         break;
      }
   }
}
int main(){
   int arr[] = {4, 2, -1, -1, 6, -3, 0};
   int size = sizeof(arr)/sizeof(arr[0]);
   //calling the function to rearrange the array
   Rearrangement(arr, size);
   //print the array after rearranging the values
   cout<<"Rearrangement of positive and negative numbers with constant extra space is: ";
   for(int i = 0; i < size; i++){
      cout<< arr[i] << " ";
   }
   return 0;
}
Salin selepas log masuk

Output

Jika kita menjalankan kod di atas, output berikut akan dihasilkan 🎜 #
Rearrangement of positive and negative numbers with constant extra space is: -3 -1 -1 0 6 2 4
Salin selepas log masuk

Atas ialah kandungan terperinci Dalam C++, susun semula nombor positif dan negatif menggunakan ruang tambahan tetap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan