Un tableau est une structure de données linéaire utilisée pour stocker un groupe d'éléments avec des types de données similaires. Il stocke les données de manière séquentielle. Une fois que nous avons créé un tableau, nous ne pouvons pas modifier sa taille, c'est-à-dire qu'il peut stocker un nombre fixe d'éléments.
Cet article vous aidera à comprendre l'algorithme d'inversion et nous créerons un programme Java dans lequel nous créons un tableau et effectuons une rotation correcte en appliquant l'algorithme d'inversion.
Comprenons le terme « rotation à droite » dans le contexte d'un tableau.
En rotation à droite d'un tableau, nous décalons simplement les éléments du tableau vers notre droite jusqu'au nombre de rotations spécifié.
Dans l'exemple ci-dessus, lorsque nous faisons pivoter le tableau 2 fois, les éléments commençant à partir de la 0ème position seront déplacés vers la 2ème position et au-delà, tandis que les 2 derniers éléments seront remplis jusqu'aux deux premières positions.
Lorsque nous faisons pivoter le tableau 4 fois, les éléments partant de la 0ème position seront déplacés vers la 4ème position et au-delà.
Data_Type nameOfarray[]; // declaration Or, // declaration with size Data_Type nameOfarray[] = new Data_Type[sizeofarray];
Nous pouvons utiliser n’importe laquelle des syntaxes ci-dessus dans notre programme.
L'approche de l'algorithme d'inversion est la suivante −
Étape 1 - Tout d'abord, nous inversons le tableau donné du premier index au dernier index.
Étape 2 - En avançant, nous inversons le tableau donné du premier index à la position rt - 1, où rt est le nombre de rotations requis.
Step3 - Dans la dernière étape, nous inverserons le tableau restant, c'est-à-dire de rt au dernier index.
Notez que pour déplacer les éléments du tableau, nous effectuerons l'échange entre eux.
Nous allons mettre notre logique dans une méthode définie par l'utilisateur. Discutons de la façon dont nous pouvons créer une méthode définie par l'utilisateur.
accessSpecifier nonAccessModifier return_Type nameOfmethod(Parameters) { // your code will come here }
accessSpecifier- Il est utilisé pour définir l'accessibilité de la méthode. Elle peut être publique, protégée, par défaut et privée.
nonAccessModifier - Il présente des fonctionnalités ou un comportement supplémentaires d'une méthode telle que statique et finale.
return_Type - Le type de données qu'une méthode va renvoyer. Nous utilisons le mot-clé void lorsque la méthode ne renvoie rien.
nameOfmethod - Nom de la méthode.
parameters - Il contient le nom de la variable suivi du type de données.
public class Rotation { public void rev(int rot_arr[], int first, int last) { while(first < last) { int temp = rot_arr[first]; rot_arr[first] = rot_arr[last]; rot_arr[last] = temp; first++; last--; } } public int[] rotates(int rot_arr[], int rt) { rt = rt % rot_arr.length; rev(rot_arr, 0, rot_arr.length - 1); rev(rot_arr, 0, rt - 1); rev(rot_arr, rt, rot_arr.length - 1); return rot_arr; } public static void main(String[] args) { Rotation obj = new Rotation(); int rot_arr[] = {5, 8, 2, 4, 7, 1}; int rt = 4; System.out.print(" The given array is: "); for(int i = 0; i < rot_arr.length; i++) { System.out.print(rot_arr[i] + " "); } obj.rotates(rot_arr, rt); System.out.println(); System.out.print(" The given array after right rotation is: "); for(int i = 0; i < rot_arr.length; i++) { System.out.print(rot_arr[i] + " "); } } }
The given array is: 5 8 2 4 7 1 The given array after right rotation is: 2 4 7 1 5 8
Dans le code ci-dessus, nous avons créé une classe appelée « Rotation », dans laquelle nous avons défini deux méthodes « rev » et « rotates » avec des paramètres. La méthode « rev » est utilisée pour échanger des éléments et « rotates » est utilisée pour appliquer la logique de l'algorithme d'ordre inverse. Dans la méthode main(), nous avons créé un objet de classe 'Rotation' nommé 'obj' et avons utilisé l'objet pour appeler la méthode 'rotates' et avons transmis deux paramètres.
Dans cet article, nous avons appris ce qu'est la bonne rotation et discuté de l'algorithme d'inversion. Nous avons écrit un programme Java pour la rotation à droite d'un tableau en utilisant l'algorithme d'inversion.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!