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.
Attention ! Si votre message contient un lien, il devra être validé par le webmestre. Inutile de le poster à nouveau ;-)

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’Internet se fragmente, mais on peut calculer sa courbure
Bonsoir, Merci pour cet article fort intéressant comme toujours. Les représentations (...)

Des algorithmes efficaces pour gérer les SSD
Entièrement d’accord pour le buffet, et pour le ridicule du tampon... sauf que dans ce cas (...)

Des algorithmes efficaces pour gérer les SSD
Article intéressant, mais je vais encore râler sur le vocabulaire. L’anglais étant (...)

Des algorithmes efficaces pour gérer les SSD
Bonjour, article intéressant, mais tu ne parles pas des algorithmes spécifiques aux moteurs de (...)

Les Valeurs de la transition numérique
Bonjour Laurent Dans ce texte, il n’est pas toujours évident de savoir quand tu reproduis (...)