Rumah > Artikel > pembangunan bahagian belakang > Susun semula tatasusunan ke dalam bentuk max-min menggunakan C++
Kami mendapat tatasusunan yang diisih. Kita perlu menyusun tatasusunan ini dalam bentuk terbesar dan terkecil, iaitu elemen pertama ialah elemen terbesar, elemen kedua ialah elemen terkecil, elemen ketiga ialah elemen kedua terbesar, dan elemen keempat ialah elemen kedua terkecil. . Dan seterusnya seperti -
Input : arr[ ] = { 10, 20, 30, 40, 50, 60 } Output : { 60, 10, 50, 20, 40, 30 } Explanation : array is rearranged in the form { 1st max, 1st min, 2nd max, 2nd min, 3rd max, 3rd min } Input : arr [ ] = { 15, 17, 19, 23, 36, 67, 69 } Output : { 69, 15, 67, 17, 36, 19, 23 }
Ada cara untuk menyusun semula tatasusunan dalam bentuk maksimum dan minimum -
Ada cara untuk menyusun semula tatasusunan dalam bentuk maksimum dan minimum -
Gunakan dua pembolehubah, min dan maks, di sini akan menunjuk kepada elemen terbesar dan terkecil, dan mencipta tatasusunan kosong baharu dengan saiz yang sama untuk menyimpan tatasusunan yang disusun semula. Sekarang ulangi tatasusunan dan jika elemen lelaran berada pada indeks genap, tambahkan elemen arr[maks] pada tatasusunan kosong dan kurangkan maks sebanyak 1. Jika elemen berada pada indeks ganjil, tambahkan elemen arr[min] pada tatasusunan kosong dan tambahkan min sebanyak 1. Lakukan ini sehingga maks kurang daripada min.
#include <bits/stdc++.h> using namespace std; int main () { int arr[] = { 1, 2, 3, 4, 5, 6 }; int n = sizeof (arr) / sizeof (arr[0]); // creating a new array to store the rearranged array. int final[n]; // pointing variables to initial and final element index. int min = 0, max = n - 1; int count = 0; // iterating over the array until max is less than or equals to max. for (int i = 0; min <= max; i++) { // if count is even then store max index element if (count % 2 == 0) { final[i] = arr[max]; max--; } // store min index element else { final[i] = arr[min]; min++; } count++; } // printing the final rearranged array. for (int i = 0; i < n; i++) cout << final[ i ] << " "; return 0; }
6 1 5 2 4 3
Dalam artikel ini, kami membincangkan penyelesaian untuk menyusun semula tatasusunan yang diberikan ke dalam bentuk maksimum min. Kami membincangkan pendekatan kepada penyelesaian dan menyelesaikannya dengan penyelesaian optimistik dengan kerumitan masa O(n). 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 tatasusunan ke dalam bentuk max-min menggunakan C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!