Kami mempunyai tatasusunan jenis integer positif, dengan mengandaikan ia ialah arr[], saiznya boleh diberikan sewenang-wenangnya, elemen dalam tatasusunan harus lebih besar daripada 0 tetapi kurang daripada saiz tatasusunan. Tugasnya adalah untuk menyusun semula tatasusunan supaya jika arr[i] sama dengan 'i', maka 'i' wujud dalam tatasusunan, jika tidak, tetapkan elemen arr[i] kepada -1 dan cetak hasil akhir.
Input − int arr[] = {0, 8 , 1 , 5, 4, 3, 2, 9 }
Output − Tatasusunan yang disusun semula ialah: 0 1 2 3 4 5 -1 -1#🎜🎜
Penjelasan − Kami mempunyai tatasusunan integer bersaiz 8, dan semua elemen dalam tatasusunan adalah kurang daripada 8. Sekarang, kita akan menyusun semula tatasusunan iaitu
arr[0] = 0(present in an array) arr[1] = 1(present in an array) arr[2] = 2(present in an array) arr[3] = 3(present in an array) arr[4] = 4(present in an array) arr[5] = 5(present in an array) arr[6] = -1(NOT present in an array) arr[7] = -1(NOT present in an array)
input− int arr[] = {1, 2, 6, 9, 10}#🎜 #
Output− Susun semula tatasusunan supaya arr[i] = i ialah: -1 1 2 -1 -1
Penjelasan ∜ Kami mendapat tatasusunan integer bersaiz 5, dan semua elemen dalam tatasusunan mempunyai nilai kurang daripada atau lebih besar daripada 5. Sekarang, kita akan menyusun semula tatasusunan iaitu arr[0] = -1(NOT present in an array)
arr[1] = 1(present in an array)
arr[2] = 2(present in an array)
arr[3] = -1(NOT present in an array)
arr[4] = -1(NOT present in an array)
#🎜 dari🎜##🎜 i hingga 0 memulakan gelung sehingga i kurang daripada saiz. Di dalam gelung, gelung lain bermula dari j hingga 0 sehingga j kurang daripada saiz.
Di dalam gelung, semak jika arr[j] = i, kemudian tetapkan ptr = arr[j], arr[j] = arr[i], arr[ i] = ptr dan keluar dari gelung.
Mulakan gelung dari i ke saiz. Di dalam gelung, semak sama ada arr[i]! = i, kemudian tetapkan arr[i] kepada -1.
Contoh
#include <iostream> using namespace std; void Rearranging(int arr[], int size){ int ptr; for(int i = 0; i < size; i++){ for(int j = 0; j < size; j++){ if(arr[j] == i){ ptr = arr[j]; arr[j] = arr[i]; arr[i] = ptr; break; } } } for(int i = 0; i < size; i++){ if(arr[i] != i){ arr[i] = -1; } } } int main(){ int arr[] = {0, 8, 1, 5, 4, 3, 2, 9 }; int size = sizeof(arr) / sizeof(arr[0]); //calling the function to rearrange an array such that arr[i] = i Rearranging(arr, size); //Printing the array cout<<"Rearrangement of an array such that arr[i] = i is: "; for(int i = 0; i < size; i++){ cout << arr[i] << " "; } }
Rearrangement of an array such that arr[i] = i is: 0 1 2 3 4 5 -1 -1
Atas ialah kandungan terperinci Susun semula tatasusunan supaya arr = i, menggunakan C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!