Susun semula tatasusunan supaya elemen dalam kedudukan genap lebih besar daripada elemen dalam kedudukan ganjil (C++)

WBOY
Lepaskan: 2023-08-30 18:17:11
ke hadapan
1049 orang telah melayarinya

Susun semula tatasusunan supaya elemen dalam kedudukan genap lebih besar daripada elemen dalam kedudukan ganjil (C++)

Kami mendapat tatasusunan jenis integer yang mengandungi nombor positif dan negatif, katakan, arr[] sebarang saiz tertentu. Tugasnya adalah untuk menyusun semula tatasusunan sedemikian rupa sehingga semua elemen pada kedudukan genap atau indeks harus lebih besar daripada elemen pada kedudukan atau indeks ganjil, dan Cetak keputusan.

Mari kita lihat pelbagai senario input dan output untuk ini -

input− int arr[] = {2, 1, 4, 3 , 6, 5, 8, 7}

rayoutput

daripada: 2 1 4 3 6 5 8 7 Susun semula tatasusunan supaya kedudukan genap lebih besar daripada kedudukan ganjil: 1 2 3 4 5 6 7 8

Penjelasan

− Kami mendapat tatasusunan integer bersaiz 8 yang mengandungi faktor positif dan negatif. Sekarang, kami menyusun semula tatasusunan supaya semua elemen dalam kedudukan genap adalah lebih besar daripada elemen dalam kedudukan ganjil Susunan yang terhasil ialah 1 2 3 4 5 6 7 8.

Input

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

Output

− Tatasusunan sebelum mengisih: - 3 2 -4 -1 Susun semula tatasusunan supaya kedudukan genap lebih besar daripada kedudukan ganjil: -4 -3 -1 2

Penjelasan - Kami mendapat tatasusunan integer bersaiz 8 yang mengandungi unsur positif dan negatif. Sekarang, kita menyusun semula tatasusunan supaya semua elemen pada kedudukan genap adalah lebih besar daripada elemen pada kedudukan ganjil Susunan yang terhasil selepas melakukan ini ialah -4 -3 -1 2.
    Atur cara berikut menggunakan kaedah berikut
  • li>Masukkan tatasusunan elemen integer dan kira saiz tatasusunan.
  • Isih tatasusunan menggunakan kaedah isihan C++ STL dengan menghantar tatasusunan dan saiz tatasusunan kepada fungsi isih.
  • Isytiharkan pembolehubah integer dan tetapkannya dengan memanggil fungsi Penyusunan Semula(arr, saiz)
    • Dalam fungsi Penyusunan semula(arr, saiz)

  • taipkan tatasusunan, assuming ptr [assuming] integer Saiznya adalah sama dengan tatasusunan arr[saiz]
  • Isytiharkan pembolehubah jenis integer sementara iaitu pertama hingga 0 dan terakhir hingga saiz -1.
  • Gelung UNTUK dari i hingga 0 sehingga i kurang daripada saiz tatasusunan. Di dalam gelung, semak JIKA (i + 1) % 2 sama dengan 0, kemudian tetapkan ptr[i] kepada arr[last--].
  • LAIN, tetapkan ptr[i ] kepada arr[first++].
  • Cetak hasilnya.

    Contoh

    #include <bits/stdc++.h>
    using namespace std;
    void Rearrangement(int* arr, int size){
       int ptr[size];
       int first = 0;
       int last = size - 1;
       for (int i = 0; i < size; i++){
          if((i + 1) % 2 == 0){
             ptr[i] = arr[last--];
          }
          else{
             ptr[i] = arr[first++];
          }
       }
    }
    int main(){
       //input an array
       int arr[] = {2, 1, 4, 3, 6, 5, 8, 7};
       int size = sizeof(arr) / sizeof(arr[0]);
       //print the original Array
       cout<<"Array before Arrangement: ";
       for (int i = 0; i < size; i++){
          cout << arr[i] << " ";
       }
       //sort an Array
       sort(arr, arr + size);
       //calling the function to rearrange the array
       Rearrangement(arr, size);
       //print the array after rearranging the values
       cout<<"\nRearrangement of an array such that even positioned are greater than odd is: ";
       for(int i = 0; i < size; i++){
          cout<< arr[i] << " ";
       }
       return 0;
    }
    Salin selepas log masuk

    Output

    Jika kita menjalankan kod di atas, ia akan menghasilkan output berikut🎜
    Array before Arrangement: 2 1 4 3 6 5 8 7
    Rearrangement of an array such that even positioned are greater than odd is: 1 2 3 4 5 6 7 8
    Salin selepas log masuk
    🎜

    Atas ialah kandungan terperinci Susun semula tatasusunan supaya elemen dalam kedudukan genap lebih besar daripada elemen dalam kedudukan ganjil (C++). 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