logo

Programa Python per ordenar una cadena

Classificació sempre ha estat una utilitat força popular amb moltes aplicacions a tot arreu, on opta el llenguatge Python. Python en el seu llenguatge ofereix una funció d'ordenació per realitzar aquesta tasca. Però com que no tots els contenidors de Python són mutables, com ara la cadena, la funció d'ordenació no funciona ja que està al seu lloc intentant ordenar i la immutabilitat ho atura. Parlem de maneres específiques en què es pot ordenar una cadena.

Exemple

  Input:   geekforgeeks   Output:   eeeefggkkors   Explaination:  The Sorting the characters in ascending order gives us 'eeeefggkkors'.>

Programa per ordenar una cadena en Python

A continuació es mostren les llistes de mètodes que tractarem:



Programa per ordenar una cadena mitjançant join() i sortd()

La combinació de les funcions anteriors pot resoldre aquest problema en particular. Aquesta tasca es realitza en el segon pas en el qual el primer pas obtenim la llista ordenada de caràcters i després unim el resultat per obtenir la resultant cadena ordenada.

Python 3




test_string>=> 'geekforgeeks'> # printing original string> print>(>'The original string : '> +> str>(test_string))> # using join() + sorted()> # Sorting a string> res>=> ''.join(>sorted>(test_string))> > # print result> print>(>'String after sorting : '> +> str>(res))>

>

>

Sortida

The original string : geekforgeeks String after sorting : eeeefggkkors>

Complexitat temporal: La complexitat temporal del codi és O(n log n).
Complexitat espacial: La complexitat espacial del codi donat és O(n).

Ordena una cadena de Python u canta el Mètode Natiu

Per ordenar una cadena determinada amb l'entrada de l'usuari mitjançant el mètode d'ordenació de Python integrat.

Python 3




java convertir char en cadena
String>=> 'geekforgeeks'> print>(>'Original String: '>, String)> lst>=> list>(String)> lst.sort()> print>(>'Sorted String: '>)> for> i>in> lst:> >print>(i, end>=> '')>

>

>

Sortida:

Original String: geekforgeeks Sorted String:  eeeefggkkors>

Complexitat temporal: La complexitat temporal del codi és O(n log n).
Complexitat espacial: La complexitat espacial del codi donat és O(n).

Ordena una cadena de Python utilitzant reduce() i lambda

Aquesta tasca en particular també es pot realitzar mitjançant una combinació de les funcions anteriors. Aquí ens unim a la llista de caràcters ordenada resultant utilitzant el funció lambda unit per la funció de reducció. Només funciona per a Python2

Python




test_string>=> 'geekforgeeks'> # printing original string> print>(>'The original string : '> +> str>(test_string))> # using sorted() + reduce() + lambda> res>=> reduce>(>lambda> x, y: x>+> y,>sorted>(test_string))> > # print result> print>(>'String after sorting : '> +> str>(res))>

>

>

Sortida

The original string : geekforgeeks String after sorting : eeeefggkkors>

Complexitat temporal: La complexitat temporal del codi és O(n log n).
Complexitat espacial: La complexitat espacial del codi donat és O(n).

Ordena una cadena a Python utilitzant Bubble Sort

Converteix la cadena en una llista de caràcters i després utilitza el classificació de bombolles algorisme per ordenar la llista ara uneix-te a la llista ordenada per formar una cadena.

Python 3




def> sort_string(s):> >chars>=> list>(s)> >n>=> len>(chars)> >for> i>in> range>(n):> >for> j>in> range>(>0>, n>->i>->1>):> >if> chars[j]>tancs[j>+>1>]:> >chars[j], chars[j>+>1>]>=> chars[j>+>1>], chars[j]> >return> ''.join(chars)> s>=> 'geekforgeeks'> print>(>'Original string:'>, s)> print>(>'String after sorting:'>, sort_string(s))>

>

>

Sortida

Original string: geekforgeeks String after sorting: eeeefggkkors>

Complexitat temporal : O(n^2) perquè utilitzem l'algorisme d'ordenació de bombolles que té una complexitat temporal de O(n^2).
Espai auxiliar: O(n) perquè creem una nova llista de caràcters a partir de la cadena original.

Programa per ordenar una cadena mitjançant Merge Sort

Aquest enfocament utilitza el combinar ordenar algorisme per ordenar els caràcters de la cadena. Primer converteix la cadena en una llista de caràcters, i després divideix recursivament la llista per la meitat fins que s'arriba al cas base d'un sol element. Les dues meitats es tornen a fusionar en ordre ordenat mitjançant la funció merge(). La llista ordenada es torna a convertir en una cadena.

Python 3




# Define a function called 'merge_sort'> def> merge_sort(s):> >if> len>(s) <>=> 1>:> >return> s> ># find the middle index of the string 's'> >mid>=> len>(s)>/>/> 2> ># split the string into two halves, left and right> >left>=> merge_sort(s[:mid])> >right>=> merge_sort(s[mid:])> >#Recursively apply the merge_sort function on the left and right halves.> >return> merge(left, right)> > # Merge the left and right halves using the merge function.> def> merge(left, right):> #Initialize an empty list called 'result' and two indices, 'i' and 'j', both set to 0.> >result>=> []> >i>=> j>=> 0> >while> i <>len>(left)>and> j <>len>(right):> >if> left[i] result.append(left[i]) #Increment the index of the array i += 1 else: result.append(right[j]) #Increment the index of the array j += 1 result += left[i:] result += right[j:] return result s = 'geekforgeeks' #Convert the sorted list to a string and print the result. sorted_s = ''.join(merge_sort(list(s))) print('String after sorting:', sorted_s)>

>

>

int a char java
Sortida

String after sorting: eeeefggkkors>

Complexitat temporal: O(n log n) on n és la longitud de la cadena d'entrada s.
Complexitat espacial: O(n) on n és la longitud de la cadena d'entrada s.

Ordena una cadena en un programa Python mitjançant un diccionari

Aquest programa ordena una cadena d'entrada determinada en ordre ascendent en funció dels caràcters presents en ella. Utilitza un diccionari per comptar la freqüència de cada caràcter i després els ordena segons el valor ASCII del caràcter.

Python 3




input_string>=> 'geekforgeeks'> #Initialize an empty dictionary to store the count> char_count>=> {}> #Loop through each character in the input string and update the count of that character> for> char>in> input_string:> >if> char>in> char_count:> >char_count[char]>+>=> 1> >else>:> >char_count[char]>=> 1> > #Create an empty string to store the sorted string.> sorted_string>=> ''> #Loop through each character in the sorted list of keys of the dictionary> #Add that character multiplied by its count in the input string to the sorted string.> for> char>in> sorted>(char_count.keys()):> >sorted_string>+>=> char>*> char_count[char]> #Print the original string and the sorted string.> print>(>'Original string: {}'>.>format>(input_string))> print>(>'String after sorting: {}'>.>format>(sorted_string))>

>

>

Sortida

Original string: geekforgeeks String after sorting: eeeefggkkors>

Complexitat temporal: La complexitat temporal d'aquest algorisme és O(nlogn) a causa de l'ús de la funció sorted().
Complexitat espacial: La complexitat espacial d'aquest algorisme és O(n) a causa de l'ús del diccionari per emmagatzemar el recompte de cada caràcter.