Rumah >pembangunan bahagian belakang >C++ >Susun semula susunan tatasusunan menggunakan C++ - nilai minimum, nilai maksimum, nilai minimum kedua, nilai maksimum kedua
Kami mendapat tatasusunan; kami perlu menyusun tatasusunan ini dalam susunan berikut: elemen pertama haruslah elemen terkecil, elemen kedua haruslah elemen terbesar, elemen ketiga haruslah elemen kedua terkecil, dan elemen terkecil. elemen keempat hendaklah elemen kedua terbesar dan seterusnya Contoh -
Input : arr[ ] = { 13, 34, 30, 56, 78, 3 } Output : { 3, 78, 13, 56, 34, 30 } Explanation : array is rearranged in the order { 1st min, 1st max, 2nd min, 2nd max, 3rd min, 3rd max } Input : arr [ ] = { 2, 4, 6, 8, 11, 13, 15 } Output : { 2, 15, 4, 13, 6, 11, 8 }
Anda boleh menggunakan dua pembolehubah "x" dan "y" untuk menyelesaikan di mana ia menunjukkan kepada elemen maksimum dan minimum , tetapi untuk tatasusunan ini hendaklah diisih, jadi kita perlu mengisih tatasusunan terlebih dahulu dan kemudian mencipta tatasusunan kosong baharu dengan saiz yang sama untuk menyimpan tatasusunan semula. Sekarang lelaran ke atas tatasusunan dan jika elemen lelaran berada pada indeks genap, tambahkan elemen arr[ x ] pada tatasusunan kosong dan tambahkan x sebanyak 1. Jika elemen berada pada indeks ganjil, tambahkan elemen arr[ y ] pada tatasusunan kosong dan kurangkan y sebanyak 1. Lakukan ini sehingga y menjadi lebih kecil daripada x.
#include <bits/stdc++.h> using namespace std; int main () { int arr[] = { 2, 4, 6, 8, 11, 13, 15 }; int n = sizeof (arr) / sizeof (arr[0]); // creating a new array to store the rearranged array. int reordered_array[n]; // sorting the original array sort(arr, arr + n); // pointing variables to minimum and maximum element index. int x = 0, y = n - 1; int i = 0; // iterating over the array until max is less than or equals to max. while (x <= y) { // if i is even then store max index element if (i % 2 == 0) { reordered_array[i] = arr[x]; x++; } // store min index element else { reordered_array[i] = arr[y]; y--; } i++; } // printing the reordered array. for (int i = 0; i < n; i++) cout << reordered_array[i] << " "; // or we can update the original array // for (int i = 0; i < n; i++) // arr[i] = reordered_array[i]; return 0; }
2 15 4 13 6 11 8
Dalam artikel ini, kami membincangkan penyelesaian untuk menyusun semula tatasusunan yang diberikan dalam bentuk min, maksimum. Kami juga menulis program C++ untuk ini. Begitu juga, kita boleh menulis program ini dalam mana-mana bahasa lain seperti C, Java, Python, dll. Kami berharap artikel ini dapat membantu anda.
Atas ialah kandungan terperinci Susun semula susunan tatasusunan menggunakan C++ - nilai minimum, nilai maksimum, nilai minimum kedua, nilai maksimum kedua. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!