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/