Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Susun semula tatasusunan supaya elemen dalam kedudukan genap lebih besar daripada elemen dalam kedudukan ganjil (C++)

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

WBOY
WBOYke hadapan
2023-08-30 18:17:111000semak imbas

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;
    }

    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
    🎜

    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!

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