Site WWW de Laurent Bloch
Slogan du site

ISSN 2271-3905
Cliquez ici si vous voulez visiter mon autre site, orienté vers des sujets moins techniques.

Pour recevoir (au plus une fois par semaine) les nouveautés de ce site, indiquez ici votre adresse électronique :

Forum de l’article

Python, Scheme, C

modération a priori

Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par un administrateur du site.

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

Rappel de la discussion
Python, Scheme, C
- le 22 juin 2020

Cher Laurent,

un article très intéressant comme souvent et juste pour le plaisir de te contredire, j’ai pris la peine de faire ton exercice d’une façon "pythonique" à laquelle tu pourras reprocher que d’un point de vue éducatif c’est une non réponse... Mais c’est juste ma réponse ultra-intuitive à ton problème sans avoir cherché à optimiser du tout. On n’est certes pas au niveau du C mais 3 minutes sur mon portable mac, c’est pas trop mal.

import random

def gen(n) :
l=[]
for i in range(n) :
l.append(random.randint(1000000000)
return l

# assez long (5-6 minutes)
l=gen(200000000)

# environ 3min 15s
l2=sorted(l)

Raynald
PS mon indentation n’est pas conservée, je ne sais comment faire

Python, Scheme, C
Laurent Bloch - le 22 juin 2020

Merci Raynald de cette contribution. Cela dit, il ne s’agit pas d’une fonction de tri en Python, mais de l’invocation de la fonction intégrée sorted, dont je doute qu’elle soit écrite en Python. C’est ainsi que Python parvient à satisfaire ses utilisateurs, beaucoup de choses sont écrites en C dans les coulisses. Biopython en est un excellent exemple : derrière les appels Python on trouve les logiciels habituels, BLAST, PHYLIP, etc. C’est, à plus grande échelle, ce que Catherine Letondal avait développé à l’Institut Pasteur en Perl (et en d’autres temps).

Python, Scheme, C
Raynald de Lahondès - le 22 juin 2020

C’est certain. J’ai eu à faire une fois une extension en C pour utiliser une librairie C, j’ai utilisé Cython (https://cython.org/). C’était vraiment simple à mettre en oeuvre et très naturel à utiliser en python. Plus récemment je suis tombé sur ce projet, Nuitka (http://nuitka.net/doc/user-manual.html), qui est très impressionnant mais je n’ai pas pris le temps de tester ton exemple.
Raynald

Python, Scheme, C
Laurent Bloch - le 22 juin 2020
Python, Scheme, C
Laurent Bloch - le 22 juin 2020

Voici une page assez complète sur le tri en Python, fonctions natives et fonctions en Python :

https://realpython.com/sorting-algorithms-python/

Derniers commentaires

Analyse de l’algorithme de Fibonacci
Cet article me fait penser à la manière dont j’ai été bluffé par ChatGPT qui me proposait (...)

Quand la machine apprend
Passionnant livre, parmi l’abondante et inégale floraison actuelle de bouquins sur l’IA. Au (...)

Controverses autour du Système d’information (SI)
Les traités d’informatisation des années 1960 (CEGOS- G. Bauvin, etc.) expliquaient déjà que (...)

Informatique confidentielle
Je cite "moins d’une machine virtuelle que d’un système exploitation virtuel". On a vraiment (...)

Pourquoi Scheme ?
Je suis étonné de la citation suivante dans le contexte d’un article "Pourquoi Scheme ?" : (...)