Créer une copie vide d'un tableau de la même taille, l'initialiser avec deux.
Reprenez depuis le début du tableau. Rencontre 1 - écrire sur la copie du début, rencontre 3 - écrire sur la copie de la fin.
Et initialiser par deux (66% d'inutilité en moyenne) n'est pas une réussite ? De plus, vous devez surveiller les tireurs à trois points en même temps !
Créer une copie vide d'un tableau de la même taille, l'initialiser avec deux.
Reprenez depuis le début du tableau. Si l'on rencontre 1, on écrit dans la copie du début ; si l'on rencontre 3, on écrit dans la copie de la fin.
Sans copie (ou vous direz que remplir la copie est un passage séparé).
n=0, m=0
Commencez au début du tableau. Si nous rencontrons 1 - changez-le avec le n-ième élément du début, non égal à 1 (par construction, ce sera toujours 2), n++ ; si nous rencontrons 3 - changez-le avec le m-ième élément de la fin, non égal à 3, m++, et si nous rencontrons 1, nous suivons les étapes de la première partie.
Sans copie (ou vous direz que remplir la copie est un passage séparé)
n=0, m=0
Nous partons du début du tableau. Si nous rencontrons 1, nous le changeons avec le n-ième élément du début non égal à 1 (par construction ce sera toujours 2), n++ ; si nous rencontrons 3, nous le changeons avec le m-ième élément de la fin non égal à 3, m++, et si nous rencontrons 1, nous procédons comme décrit dans la première partie.
une demi-passe en moyenne, plus le même temps pour les échanges
Sans copie (ou vous direz que remplir la copie est un passage séparé)
n=0, m=0
Nous partons du début du tableau. Si nous rencontrons 1, nous le changeons avec le n-ième élément du début non égal à 1 (par construction ce sera toujours 2), n++ ; si nous rencontrons 3, nous le changeons avec le m-ième élément de la fin non égal à 3, m++, et si nous rencontrons 1, nous procédons comme décrit dans la première partie.
Sans copie (ou vous direz que remplir la copie est un passage séparé)
n=0, m=0
Nous partons du début du tableau. Si nous rencontrons 1, nous le changeons avec le n-ième élément du début non égal à 1 (par construction ce sera toujours 2), n++ ; si nous rencontrons 3, nous le changeons avec le m-ième élément de la fin non égal à 3, m++, et si nous rencontrons 1, nous procédons comme décrit dans la première partie.
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
En un seul passage :
Créer une copie vide d'un tableau de la même taille, l'initialiser avec deux.
Reprenez depuis le début du tableau. Rencontre 1 - écrire sur la copie du début, rencontre 3 - écrire sur la copie de la fin.
De plus, vous devez surveiller les tireurs à trois points en même temps !
Je vais vous donner une petite tâche.
Bien sûr, c'est un hack, mais lors des entretiens d'embauche, il fonctionne comme une apothéose de la connaissance du tri des tableaux ;))
Donc, la tâche de trier
Il existe un tableau de N cellules, dans lequel les uns, les deux et les trois sont placés dans un ordre aléatoire.
Construisez le meilleur algorithme de tri.
Comptez sur un passage, remplissez le tableau sur le second passage.
En un seul passage :
Créer une copie vide d'un tableau de la même taille, l'initialiser avec deux.
Reprenez depuis le début du tableau. Si l'on rencontre 1, on écrit dans la copie du début ; si l'on rencontre 3, on écrit dans la copie de la fin.
Sans copie (ou vous direz que remplir la copie est un passage séparé).
n=0, m=0
Commencez au début du tableau. Si nous rencontrons 1 - changez-le avec le n-ième élément du début, non égal à 1 (par construction, ce sera toujours 2), n++ ; si nous rencontrons 3 - changez-le avec le m-ième élément de la fin, non égal à 3, m++, et si nous rencontrons 1, nous suivons les étapes de la première partie.
Sans copie (ou vous direz que remplir la copie est un passage séparé)
n=0, m=0
Nous partons du début du tableau. Si nous rencontrons 1, nous le changeons avec le n-ième élément du début non égal à 1 (par construction ce sera toujours 2), n++ ; si nous rencontrons 3, nous le changeons avec le m-ième élément de la fin non égal à 3, m++, et si nous rencontrons 1, nous procédons comme décrit dans la première partie.
Sans copie (ou vous direz que remplir la copie est un passage séparé)
n=0, m=0
Nous partons du début du tableau. Si nous rencontrons 1, nous le changeons avec le n-ième élément du début non égal à 1 (par construction ce sera toujours 2), n++ ; si nous rencontrons 3, nous le changeons avec le m-ième élément de la fin non égal à 3, m++, et si nous rencontrons 1, nous procédons comme décrit dans la première partie.
C'est une bonne façon de faire.
Réduire le nombre de passages ne permet pas toujours d'augmenter la vitesse.
A+B=...
Sans copie (ou vous direz que remplir la copie est un passage séparé)
n=0, m=0
Nous partons du début du tableau. Si nous rencontrons 1, nous le changeons avec le n-ième élément du début non égal à 1 (par construction ce sera toujours 2), n++ ; si nous rencontrons 3, nous le changeons avec le m-ième élément de la fin non égal à 3, m++, et si nous rencontrons 1, nous procédons comme décrit dans la première partie.
Bonne idée.