quelle structure de données utiliser pour trier n nombres dans dr schéma i m pas permis d'utiliser le vecteur et la structure .. si j'utilise la liste je ne peux pas éditer les valeurs de liste .so comment puis-je trier n nombres. la langue que j'utilise est textuelle mzscheme rsr5est-ce que quelqu'un utilise la programmation de Dr schéma? comment trier en utilisant la liste?
Répondre
Si vous ne pouvez pas éditer les valeurs de liste ... retourner une nouvelle liste! :-)
Vous ne savez pas si vous êtes censé être écrire votre propre bubblesort aux devoirs, mais sinon cela est construit dans:
(tri (liste 1 2 4 3) <) (1 2 3 4)
la solution de tri d'insertion est assez facile dans le schéma (avec Bigo de N^2 performances, il est pauvre, mais ne fonctionne toujours le travail)
Pour trier n nombres, vous pouvez utiliser les données de la liste tapez pour maintenir les valeurs d'un d une liste de nombres est soit;
vide,
(nombre contre ListofNumber)
pour le tri d'insertion, vous avez besoin de 2 fonctions et introducteur qui fait un insert unique d'un numéro à une liste déjà triée des nombres et une autre fonction qui appellera cet insert récursivement.
L'entrée-sortie de la fonction d'insertion
;;insert: Number ListOfNumber(Sorted) -> ListOfNumber(Sorted)
(define (insert n lon)
(cond
[(empty? lon) (cons n lon)]
[(<= n (first lon)) (cons n lon)]
(else
(cons (first lon) (insert n (rest lon))))))
;;insertion-sort: ListOfNumber -> ListOfNumber(Sorted)
(define (insertion-sort lon)
(cond
[(empty? lon) lon] ;;if the list is empty than the numbers are sorted
(else
(insert (first lon) (insertion-sort (rest lon))))))
J'espère que cette réponse correspond à votre question
Merci beaucoup pour cette réponse. – spectre10
comment inclure la bibliothèque dans notre programme – Arunachalam
En fait, le tri est * pas * construit pour r5rs Scheme. (http://schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-15.html#%_index_start). Le tri par bulles est également un mauvais choix pour Scheme; il est très difficile d'écrire par rapport au tri par insertion, par exemple. –
Salut Nathan - merci ne savais pas que ce n'était pas dans la norme. J'ai juste commencé à apprendre le schéma. – Ben