Python - Coste temporal de una función

 
Vista:
sin imagen de perfil
Val: 10
Ha disminuido su posición en 10 puestos en Python (en relación al último mes)
Gráfica de Python

Coste temporal de una función

Publicado por Ramon (5 intervenciones) el 13/05/2020 12:35:02
Hola buenas,
He estado mirando en diferentes lugares acerca del coste temporal pero no llego a entenderlo. Alguien me podría decir cual es el coste de este programa y por que?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import time
def Mezcla(lista4):
    t4=time.process_time()
    if len(lista4)>1:
        i=0
        j=0
        k=0
        mid = len(lista4)//2
        midI = lista4[:mid]
        midD = lista4[mid:]
 
        Mezcla(midI)
        Mezcla(midD)
        while i < len(midI) and j < len(midD):
            if midI[i] < midD[j]:
                lista4[k]=midI[i]
                i=i+1
            else:
                lista4[k]=midD[j]
                j=j+1
            k=k+1
 
        while i < len(midI):
            lista4[k]=midI[i]
            i=i+1
            k=k+1
 
        while j < len(midD):
            lista4[k]=midD[j]
            j=j+1
            k=k+1
    return t4
 
lista4 = [54,26,93,17,77,31,44,55,20]
Mezcla(lista4)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Coste temporal de una función

Publicado por joel (903 intervenciones) el 13/05/2020 15:28:39
Hola Ramon, no me queda muy claro que quieres obtener... el tiempo de uso de CPU o el tiempo en ejecutar la función?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Coste temporal de una función

Publicado por tincopasan (860 intervenciones) el 13/05/2020 23:58:00
veamos:
tu planteo no es para nada claro, más allá que se ve que no querés esperar, esto está dos veces, y no siempre se puede o se quiere responder(no es un foro de responder tareas obligatorio), sigo... salvo que esté muy loco, esto no es otra cosa que un ordenamiento por burbuja.hay mucha información sobre esto, en este caso es lerdo porque lleva 64 iteraciones y hay muchos momentos de escritura para realizar los cambios,
o sea hay muchas comparaciones y cambios de la lista, además de la recursión, que no es necesaria.
El coste lo ves simplemente:
1
print(Mezcla(lista4))
supongo que a eso se refiere
lo que me cuesta entender, para que tanto código si:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#-*- coding: utf -8 -*-
import time
 
lista4 = [54,26,93,17,77,31,44,55,20]
 
def burbuja(lista):
    t4=time.process_time()
    for x in range(len(lista) - 1):
        for y in range(len(lista)-1):
            if lista[y] > lista[y+1]:
                lista[y],lista[y+1] = lista[y+1],lista[y]
 
    return t4
 
print(burbuja(lista4))
con un código más claro se logra lo mismo, y no lo vas a usar para listas muy extensas, ya que este método no tiene sentido, más que para aprendizaje.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-2
Comentar
sin imagen de perfil
Val: 10
Ha disminuido su posición en 10 puestos en Python (en relación al último mes)
Gráfica de Python

Coste temporal de una función

Publicado por Ramon (5 intervenciones) el 14/05/2020 09:56:20
Joe que pena! Esto no era una tarea, he estado analizando diferentes métodos de ordenamiento y este es uno de ellos. Entre ellos el burbuja que tu mencionas, un método super sencillo y para nada complicado comparado con una función de utilidad recursiva. Para listas de tamaño pequeño el ordenamiento burbuja es el optimo, o el de selección. En listas largas el método que tu enseñas es el peor ya que tiene un coste temporal de n^2, a diferencia de otros que solo tiene n*log(n), es decir su coste tendiendo al infinito es mucho menor! Pero sin problema! Este viejo de 33 años no volverá a molestar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Coste temporal de una función

Publicado por joel (903 intervenciones) el 14/05/2020 10:25:41
Ramon, no se lo tengas en cuenta!!! sus ultimas respuestas son un poco pasadas de tono... cree que todo el mundo solicita hacer sus tareas...

Aprovecho para comentar que 33 años no eres viejo!!! entonces yo que tengo unos cuantos mas...

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 10
Ha disminuido su posición en 10 puestos en Python (en relación al último mes)
Gráfica de Python

Coste temporal de una función

Publicado por Ramon (5 intervenciones) el 14/05/2020 10:55:38
Gracias Joel! Me estoy metiendo un poco en este mundillo como hobby y por eso igual hago preguntas un poco absurdas. De todas formas este problema ya me lo ha solucionado un amigo.

Un saludo y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar