Codice Python per l`ordinamento dell`heap della complessità del diagramma temporale

|

Qui implementiamo un ordinamento heap, lo chiamiamo su elenchi casuali di dimensioni diverse, misuriamo il tempo impiegato per dimensioni diverse e generiamo un grafico della dimensione dell’input rispetto al tempo.

# Codice Python per l’implementazione e l’esecuzione dell’algoritmo
# Complessità del grafico Heap Sort
# Ashok Kajal
# Questo codice Python è progettato per implementare l’algoritmo di ordinamento heap
# Grafici della sequenza temporale Complessità nell’elenco dimensioni diverse


# ----------- ---- ------ Nota importante -------------------
# numpy, time e matplotlib. pyplot sono necessari per eseguire questo codice

import time

< p> da numpy.random import seme

da numpy.random import randint

import matplotlib.pyplot as plt


# trova il figlio sinistro del nodo i

def left (i):

return 2 * i + 1


# trova il figlio corretto del nodo i

< p> def destra (i):

return 2 * i + 2


# calcola e restituisce la dimensione dell’array

def heapSize (A):

return len (A) - 1


# Questo la funzione accetta un array e Heapyfies
# nel nodo I

def M axHeapify (A, i):

# print ("sull’heap", me)

l = sinistra (i)

r = destra (i)

# heapSize = len (A)

# stampa (& quot; sinistra & quot;, l, & quot; Destra & quot ;, r, & quot; Size & quot;, heapSize)

if l " = heapSize (A) e A [l]" A [i]:

più grande = l

else :

più grande = i

se r " = heapSize (A) e A [r]" A [più grande]:

più grande = r

if più grande! = i:

# print (& quot; Più grande & quot;, più grande)

A [i], A [più grande] = A [ più grande], A [i]

# print ("Elenco", A)

MaxHeapify (A, più grande)


# questa funzione crea un array heapified

def BuildMaxHeap (A):

< p> for i in intervallo ( int (heapSize (A) / 2 ) - 1 , - 1 , - 1 ):

MaxHeapify (A, i)


# L’ordinamento viene eseguito utilizzando l’heap dell’array

def HeapSort (A):

BuildMaxHeap (A)

B = elenco ()

heapSize1 = heapSize (A )

for i in intervallo (heapSize (A), 0 , - 1 ):

A [ 0 ], A [i] = A [i], A [ 0 ]

B.append ( A [heapSize1])

A = A [: - 1 ]

heapSize1 = heapSize1 - 1

MaxHeapify (A , 0 )


# genera casualmente un elenco di
# heapSort dimensione e funzione call

elementi = elenco ()

volte = < classe codice = "funzioni"> elenco ()

for i in range ( 1 , 10 ):

# generate più numeri interi

a = randint ( 0 , 1000 * i, 1000 * i)

# print (s)

inizio = time.clock ()

HeapSort (a)

end = time.clock ()

# print ("L’elenco ordinato è" e)

print ( len (a), "Elementi ordinati per HeapSort in " , fine - inizio)

elements.append ( len (a))

times.append (end - inizio)

plt.xlabel ( ’ List Length’ )

plt.ylabel ( ’Complessità temporale’ )

plt.plot (elementi, tempi, etichetta = ’Heap Sort’ )

plt.grid ()
plt.legend ()
plt.show ()
# Questo codice è fornito da Ashok Kajal

Output:

 Input: vengono generati elenchi non ordinati di dimensioni diverse Casualmente uscita: 1000 elementi ordinati dal heapsort in ,023797415087301488 2000 elementi ordinati dal heapsort in ,053856713614550245 3000 elementi ordinati dal heapsort in ,08474737185133563 4000 elementi ordinati dal heapsort in 0,18,377866 millions ,1658182863213824 6000 elementi ordinati dal heapsort in ,1875901601906662 7000 elementi ordinati dal heapsort in ,21982946862249264 8000 Elementi Ordinati per HeapSort in 0.2724293921580738 9000 elementi Ordinati per HeapSort in 0.30996 Complexity PLot .python.engineering/wp-content/uploads/Heap-Sort-300x202.png "alt =" "width =" 300 "height =" 202 "class ="alignnone size-medium wp-image-567725 amp-wp-enforced - dimensioni "layout =" intrinseco ">  

Ci auguriamo che questo articolo ti abbia aiutato a risolvere il problema. Oltre a Codice Python per l`ordinamento dell`heap della complessità del diagramma temporale, controlla altri argomenti relativi a NumPy.

Vuoi eccellere in Python? Consulta la nostra recensione dei migliori corsi online Python 2022. Se sei interessato alla scienza dei dati, controlla anche come imparare a programmare in R.

A proposito, questo materiale è disponibile anche in altre lingue:



Javier Krasiko

Singapore | 2022-12-08

Python functions è tutto un po' confuso 😭 Codice Python per l`ordinamento dell`heap della complessità del diagramma temporale non è l'unico problema che ho riscontrato. Lo userò nella mia tesi di laurea

Cornwall Danburry

Vigrinia | 2022-12-08

Semplice e chiaro. Grazie per la condivisione. Il mio punto debole è sempre stato il Codice Python per l`ordinamento dell`heap della complessità del diagramma temporale e altri problemi con il Python functions 😁. Lo userò nella mia tesi di laurea

Dmitry Ungerschaft

Tallinn | 2022-12-08

Mi stavo preparando per il mio colloquio di codifica, grazie per aver chiarito questo punto - Codice Python per l`ordinamento dell`heap della complessità del diagramma temporale in Python non è il più semplice. Lo userò nella mia tesi di laurea

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

Common xlabel/ylabel for matplotlib subplots

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

12 answers

NUMPYNUMPY

Flake8: Ignore specific warning for entire file

12 answers

NUMPYNUMPY

glob exclude pattern

12 answers

NUMPYNUMPY

How to avoid HTTP error 429 (Too Many Requests) python

12 answers

NUMPYNUMPY

Python CSV error: line contains NULL byte

12 answers

NUMPYNUMPY

csv.Error: iterator should return strings, not bytes

12 answers

News


Wiki

Python | How to copy data from one Excel sheet to another

Common xlabel/ylabel for matplotlib subplots

Check if one list is a subset of another in Python

sin

How to specify multiple return types using type-hints

exp

Printing words vertically in Python

exp

Python Extract words from a given string

Cyclic redundancy check in Python

Finding mean, median, mode in Python without libraries

cos

Python add suffix / add prefix to strings in a list

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

Python - Move item to the end of the list

Python - Print list vertically