Maison > développement back-end > C++ > Imprimer des éléments inhabituels à partir de deux tableaux triés

Imprimer des éléments inhabituels à partir de deux tableaux triés

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2023-09-12 22:09:16
avant
1587 Les gens l'ont consulté

Imprimer des éléments inhabituels à partir de deux tableaux triés

Étant donné deux tableaux triés, la sortie devrait montrer leurs éléments non communs

Given : array1[]= {1, 4, 6, 9, 12}
   array2[]= {2, 4, 7, 8, 9, 10}
Output : 1 2 6 7 8 10 12
Copier après la connexion

La traduction chinoise de l'algorithme

START
Step 1 -> declare two arrays array1 and array2 with elements as int and variables n1, n2, i to 0 and j to 0
Step 2 -> calculate number of elements in array1 sizeof(array1)/sizeof(array1[0])
Step 3-> calculate number of elements in array2 sizeof(array2)/sizeof(array2[0])
Step 4 -> Loop While till i<n1 and j<n2
   IF array1[i]<array2[j]
      Print array1[i++]
   End IF
      ELSE If array1[i] > array2[j]
         Print array2[j++ ]
      End ELSE IF
   ELSE
      i++ and j++
   End ELSE
Step 5 -> End Loop While
Step 6 -> loop While i < n1 && array1[i]!=array2[j]
   Print array1[i++]
Step 7 -> End Loop While
Step 8 -> loop While j < n2 && array2[j]!=array1[i]
   Print array2[j++]
Step 9 -> End Loop While
STOP
Copier après la connexion

Exemple

est :

Exemple

#include <stdio.h>
int main(int argc, char const *argv[]) {
   int array1[]= {1, 4, 6, 9, 12};
   int array2[]= {2, 4, 7, 8, 9, 10};
   int n1, n2, i=0, j=0;
   n1 = sizeof(array1)/sizeof(array1[0]); //Calculating number of elements in array1
   n2 = sizeof(array2)/sizeof(array2[0]); //Calculating number of elements in array2
   while(i < n1 && j < n2) {
      if(array1[i] <array2[j]) //checking whether the element of array1 is smaller than array2
         printf("%d</p><p>", array1[i++]);
      else if (array1[i] > array2[j]) //checking whether the element of array2 is smaller than array1
         printf("%d</p><p>", array2[j++]);
      else { //if they are equal increment both i and j      
         i++;
         j++;
      }
   }
   while(i < n1 && array1[i]!=array2[j]) //print remaining array1
      printf("%d</p><p>", array1[i++]);
   while(j < n2 && array2[j]!=array1[i]) //print remaining array1
      printf("%d</p><p>", array2[j++]);
   return 0;
}
Copier après la connexion

Sortie

Si nous exécutons le programme ci-dessus, il générer le résultat suivant

1
2
6
7
8
10
12
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal