| |
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

L’informatique, tentative d’explication
Merci de ces précisions, Frédéric. Autant qu’il m’en souvienne, Ada et Java permettent les (...)

L’informatique, tentative d’explication
Merci pour cette belle présentation du sujet ! Sur les données : "Une question importante en (...)

L’informatique, tentative d’explication
Merci de votre message. Je serai prudent quant à l’avenir de l’informatique quantique. Pour ce qui (...)

L’informatique, tentative d’explication
Bonjour, Une analyse remarquable. Auriez vous des réflexions concernant l’informatique quantique (...)

Alléger le noyau !
Pardon Laurent, j’avais effectivement mal lu. Merci à toi pour cet espace d’échange bienveillant et (...)