Rumah > Artikel > pembangunan bahagian belakang > Program C++ untuk menyusun semula tatasusunan dalam bentuk max-min
Kami mendapat tatasusunan integer, yang boleh disusun dalam cara yang disusun/tidak diisih. Tugasnya adalah untuk mengisih tatasusunan terlebih dahulu (jika nilai tidak diisih) dan kemudian menyusun tatasusunan sedemikian rupa sehingga elemen pertama tatasusunan adalah nilai maksimum, elemen kedua adalah nilai minimum, dan yang ketiga elemen ialah tatasusunan. Maksimum kedua, yang keempat akan menjadi minimum kedua, dan seterusnya.
input − int arr[] = {7, 5, 2, 3, 4, 9, 10, 5 }
Array sebelum sorting
: 2 3 4 5 5 7 9 10 Susun semula tatasusunan dalam bentuk maks-min sebagai: 10 2 9 3 7 4 5 5Penjelasan
− Kami mendapat tatasusunan jenis integer yang mengandungi nilai {7, 5, 2, 3, 4, 9, 10 , 5 } . Mula-mula, kita mengisih tatasusunan, ia akan menjadi {2 3 4 5 5 7 9 10}. Kedua, susun elemen terbesar di arr[0] (iaitu 10), kemudian susun elemen terkecil di arr[1] (iaitu 2), kemudian susun elemen kedua terbesar di arr[2] (iaitu 9), dan seterusnya analogi. Tatasusunan keputusan akhir ialah 10 2 9 3 7 4 5 5Input
− int arr[] = {2, 4, 1, 6, 7}Output
− Tatasusunan sebelum mengisih, 1 4, 6, 7 Susun semula tatasusunan dalam bentuk maks-min sebagai: 7, 1, 6, 2, 4Penjelasan
− Kami mendapat tatasusunan jenis integer yang mengandungi nilai {2, 4, 1, 6, 7}. Mula-mula kita mengisih tatasusunan, hasilnya ialah {1,2,4,6,7}. Kedua, susun elemen terbesar di arr[0], iaitu 7 kemudian elemen terkecil di arr[1] iaitu 1 kemudian elemen kedua terbesar di arr[2] iaitu 6 dan seterusnya. Tatasusunan akhir ialah 7, 1, 6, 2, 4Kaedah yang digunakan dalam atur cara di bawah adalah seperti berikut#include <bits/stdc++.h> using namespace std; void Rearr_Max_Min(int arr[], int size){ int max = size - 1; int min = 0; int max_val = arr[size - 1] + 1; for (int i = 0; i < size; i++){ if (i % 2 == 0){ arr[i] += (arr[max] % max_val) * max_val; max--; } else{ arr[i] += (arr[min] % max_val) * max_val; min++; } } for(int i = 0; i < size; i++){ arr[i] = arr[i] / max_val; } } int main(){ //input an array int arr[] = {7, 5, 2, 3, 4, 9, 10, 5 }; int size = sizeof(arr) / sizeof(arr[0]); //sort an array sort(arr, arr + size); //print the original Array after sorting cout<<"Array before Arrangement: "; for (int i = 0; i < size; i++){ cout << arr[i] << " "; } //calling the function to rearrange the array Rearr_Max_Min(arr, size); //print the array after rearranging the values cout<<"\nRearrangement of an array in maximum minimum form is: "; for(int i = 0; i < size; i++){ cout<< arr[i] << " "; } return 0; }Output
Array before Arrangement: 2 3 4 5 5 7 9 10 Rearrangement of an array in maximum minimum form is: 10 2 9 3 7 4 5 5
Atas ialah kandungan terperinci Program C++ untuk menyusun semula tatasusunan dalam bentuk max-min. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!